theKingOfNight's Blog

渗透测试学习笔录

字数统计: 2.4k阅读时长: 9 min
2019/05/09 Share

65
前段时间水月大佬给我推荐了哈Micropoor,大佬放出毕生所学,作为一只萌新,其中有很多没有见到的东西,打算一点点学完,感觉相当相当不错,这里只针对自己一般的地方做一点记录,尚未完成…
起初本想学完Micro8,后打算不仅仅局限于Micro8,如果继续找到其他的资源,再做一点点的补充。
本来想当作个人笔记,现公开,希望和我一样迷茫的萌新们可以更好更快的发展吧,本文欢迎转载,分享请注明原文,虽然尚未完结,希望可以帮助到更多的人吧。
如有不到位的地方或者补充的地方,欢迎指出….

Windows

时刻关注微软官方cve列表:https://docs.microsoft.com/zh-cn/security-updates/

常用cmd命令

1
2
3
tasklist
netstat -an|findstr "LISTENING"
ver
1
2
3
4
5
6
certutil.exe -urlcache -split -f http://192.168.1.115/robots.txt
certutil.exe -urlcache -split -f http://192.168.1.115/robots.txt delete (清除缓存)
certutil -hashfile C:\window32\xxx.txt (默认SHA1)
certutil -hashfile C:\window32\xxx.txt MD5
C:\>certutil -encode c:\downfile.vbs downfile.bat
C:\>certutil -decode c:\downfile.bat downfile.txt
1
2
3
4
windows7 以上版本内置 bitsadmin
它可以在网络不稳定的状态下下载文件,出错会自动重试
在比较复杂的网络环境下,有着不错的性能。
E:\>bitsadmin /rawreturn /transfer down "http://192.168.1.115/robots.txt" E:\PDF\robots.txt
1
2
C:\test>cscript /nologo downfile.js http://192.168.1.115/robots.txt
C:\test>cscript /nologo dowfile2.js http://192.168.1.115/robots.txt

Invoke-CradleCrafter

一款 powershell 的混淆框架的配合
项目地址
使用介绍

零碎的知识点

1.在实际情况中,交互的shell下运行 mysql -uroot -pxxx 无法继续交互,采用非交互试的,参数e

1
mysql -uroot -pxxxxxxxx mysql -e "create table a (cmd LONGBLOB);"

下载目标机..MYI,.MYD,*.frm,加载于本地mysql。得到目标机root密码

1
2
systeminfo
wmic product

1
2
3
net user /domain
net group /domain
net group "研发中心" /domain

Linux

一些公开exp

https://github.com/SecWiki/linux-kernel-exploits
https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack/
https://github.com/xairy/kernel-exploits

内网

ARP发现内网存活主机

ARP简介:ARP,通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议。根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。

netdiscover

1
root@John:~# netdiscover -r 192.168.1.0/24 -i wlan0

UDP发现内网存活主机

UDP简介:UDP(User Datagram Protocol)是一种无连接的协议,在第四层-传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。

netbios内网存活主机

netbios简介:IBM公司开发,主要用于数十台计算机的小型局域网。该协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的同一的命令集,作用是为了给局域网提供网络以及其他特殊功能。
系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名-——特指基于NETBIOS协议获得计算机名称——解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享。

nbtscan扫描

NetBScanner

snmp发现内网存活主机

SNMP属于应用层协议,主要用于网络设备的管理。SNMP协议主要由SNMP管理站和SNMP代理构成。SNMP管理站是一个中心节点,负责收集维护各个SNMP元素的信息,并对这些信息进行处理,最后反馈给网络管理员;而SNMP代理是运行在各个被管理的网络节点之上,负责统计该节点的各项信息,并且负责与SNMP管理站交互,接收并执行管理站的命令,上传各种本地的网络信息。

nmap

1
root@John:~# nmap -sU --script snmp-brute 192.168.1.0/24 -T4

msf

1
msf > use auxiliary/scanner/snmp/snmp_enum

NetCrunch Tools

内网安全审计工具,包含了DNS审计,ping扫描,端口,网络服务等。

snmp-scanner

netscantools

ICMP发现内网存活主机

ICMP简介:
它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

nmap

1
2
3
nmap ‐sP ‐PI 192.168.1.0/24 ‐T4
nmap ‐sn ‐PE ‐T4 192.168.1.0/24

SMB发现内网存活主机

nmap

1
root@John:~# nmap ‐sU ‐sS ‐‐script smb‐enum‐shares.nse ‐p 445 192.168.1.119

cmd

1
cme smb 192.168.1.0/24

MSF发现内网存活主机

常用paylaod

1
2
3
4
5
auxiliary/scanner/discovery/arp_sweep
auxiliary/scanner/discovery/udp_sweep
auxiliary/scanner/ftp/ftp_version
auxiliary/scanner/http/http_version
auxiliary/scanner/smb/smb_version

1
2
3
4
5
auxiliary/scanner/ssh/ssh_version
auxiliary/scanner/telnet/telnet_version
auxiliary/scanner/discovery/udp_probe
auxiliary/scanner/dns/dns_amp
auxiliary/scanner/mysql/mysql_version
1
2
3
4
5
auxiliary/scanner/netbios/nbname
auxiliary/scanner/http/title
auxiliary/scanner/db2/db2_version
auxiliary/scanner/portscan/ack
auxiliary/scanner/portscan/tcp
1
2
3
4
5
auxiliary/scanner/portscan/syn
auxiliary/scanner/portscan/ftpbounce
auxiliary/scanner/portscan/xmas
auxiliary/scanner/rdp/rdp_scanner
auxiliary/scanner/smtp/smtp_version
1
2
3
4
5
6
7
auxiliary/scanner/pop3/pop3_version
auxiliary/scanner/postgres/postgres_version
auxiliary/scanner/ftp/anonymous
db_nmap
db_nmap是msf的内置nmap,使用方法与nmap相同
msf exploit(multi/handler) > db_nmap ‐p 445 ‐T4 ‐sT 192.168.1.115‐120
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
发现域中存活主机
windows/gather/arp_scanner
meterpreter > run windows/gather/arp_scanner RHOSTS=192.168.1.110‐120 THREADS=20
windows/gather/enum_ad_computers
meterpreter > run windows/gather/enum_ad_computers
windows/gather/enum_computers
meterpreter > run windows/gather/enum_computers
windows/gather/enum_domain
meterpreter > run windows/gather/enum_domain
windows/gather/enum_domains
meterpreter > run windows/gather/enum_domains
windows/gather/enum_ad_user_comments
meterpreter > run windows/gather/enum_ad_user_comments
还有以下常用模块
linux/gather/enum_network
linux/busybox/enum_hosts
windows/gather/enum_ad_users
windows/gather/enum_domain_tokens
windows/gather/enum_snmp

msf一些常用命令

1
msf > search scanner type:auxiliary
1
2
3
存活主机
msf exploit(multi/handler) > hosts
msf exploit(multi/handler) > hosts -h

实用工具

扫描工具

dirb

综合性工具

msf

mysql

1
2
3
4
5
6
7
auxiliary/scanner/mysql/mysql_login
exploit/multi/mysql/mysql_udf_payload
exploit/windows/mysql/mysql_mof
exploit/windows/mysql/scrutinizer_upload_exec
auxiliary/scanner/mysql/mysql_hashdump
auxiliary/admin/mysql/mysql_sql
auxiliary/scanner/mysql/mysql_version

mssql

1
2
3
4
5
6
7
8
9
10
11
auxiliary/admin/mssql/mssql_enum
auxiliary/admin/mssql/mssql_enum_sql_logins
auxiliary/admin/mssql/mssql_escalate_dbowner
auxiliary/admin/mssql/mssql_exec
auxiliary/admin/mssql/mssql_sql
auxiliary/admin/mssql/mssql_sql_file
auxiliary/scanner/mssql/mssql_hashdump
auxiliary/scanner/mssql/mssql_login
auxiliary/scanner/mssql/mssql_ping
exploit/windows/mssql/mssql_payload
post/windows/manage/mssql_local_auth_bypass

msfvenom生成常用payload

msfvenom便捷化生成payload

smbmap

项目地址:https://github.com/ShawnDEvans/smbmap
弥补 msf 文件搜索以及文件内容搜索的不足。

离线提取目标hash

[msf内置mimikatz使用(https://micro8.github.io/Micro8-HTML/Chapter1/61-70/65_%E7%A6%BB%E7%BA%BF%E6%8F%90%E5%8F%96%E7%9B%AE%E6%A0%87%E6%9C%BAhash%E8%A1%A5%E5%85%85.html)

meterpreter使用irb操作系列

msfvenom内存加载shellcode

其他工具

GreatSCT

GreatSCT 是以 metasploit payload 为核心,白名单辅助 payload 执行框架。更多介绍

免杀

介绍:目前的反病毒安全软件,常见有三种,一种基于特征,一种基于行为,一种基于云查杀。云查杀的特点基本也可以概括为特征查杀。无论是哪种,都是特别针对 PE 头文件的查杀。尤其是当 payload 文件越大的时候,特征越容易查杀。

特征与行为分离免杀

避免 PE 头文件,并且分离行为,与特征的综合免杀。(这里专门针对x32,xp及以下脚本,借助非微软自带的第三方来执行shellcode,调用自带本身一定就会有微软的签名,从而绕过反病毒软件。)

自己动手尝试写shellcode执行盒

payload分离免杀思路第二季

windows默认安装 NET Framework
C# 的在 Windows 平台下的编译器名称是 Csc.exe

powershell免杀

msf多次编码免杀

基于SqlDataSourceEnumerator发现内网存活主机

msfvenom不生成pe文件,生成shellcode并借助第三方直接加载到内存中

csc.exe与InstallUtil.exe分离免杀

基于Powershell做Socks4-5代理

提取目标机hash下载本地解密

借助aspx对payload进行分离免杀

后门

一个优秀的后门,一定是具备几点特征的,无文件,无端口,无进程,无服务,无语言码,并且是量身目标制定且一般不具备通用性。

rootkit

隐蔽后门介绍

第一季关于后门

一个案例

the-backdoor-factory

项目地址:https://github.com/secretsquirrel/the-backdoor-factory
原理:将可执行的二进制文件中的00替换为payload并在程序执行时jmp到代码段触发payload,其中00中不包含数据。
使用案例

Veil-Evasion

可以过大多数杀软
项目地址
使用案例

payload

PHP,python,ruby
C#,Bash

提权

mysql

非交互条件下,mysql udf提权

1
mysql -uroot -pxxxxx -e "select version()"

在线类工具网站

https://pentest-tools.com/home

红蓝对抗渗透测试

BloodHound

对于攻击者来说,能快速的获取到域中的线索以便进行下一步攻击,而对于防御者来说,可以更快速的得知攻击者可能采取的攻击途径以及域中的可突破的途径。
介绍参见
项目地址

popy

Pupy是一个开源,跨平台(Windows,Linux,OSX,Android),多功能RAT(远程管理工具)和主要用python编写的后期开发工具。它具有全内存读取操作,进程注入等。Pupy可以使用各种传输进行通信,迁移到进程(注入),从内存加载远程Python代码。
项目地址

效率提高

msfvenom命令自动补全

渗透案例

持续渗透、后渗透

参考

https://github.com/Micropoor/Micro8
https://micro8.github.io/Micro8-HTML/*
https://micropoor.blogspot.com/ (大佬博客)

CATALOG
  1. 1. Windows
    1. 1.1. 常用cmd命令
      1. 1.1.1. Invoke-CradleCrafter
    2. 1.2. 零碎的知识点
  2. 2. Linux
    1. 2.1. 一些公开exp
  3. 3. 内网
    1. 3.1. ARP发现内网存活主机
      1. 3.1.1. netdiscover
    2. 3.2. UDP发现内网存活主机
    3. 3.3. netbios内网存活主机
      1. 3.3.1. nbtscan扫描
      2. 3.3.2. NetBScanner
    4. 3.4. snmp发现内网存活主机
      1. 3.4.1. nmap
      2. 3.4.2. msf
      3. 3.4.3. NetCrunch Tools
      4. 3.4.4. snmp-scanner
      5. 3.4.5. netscantools
    5. 3.5. ICMP发现内网存活主机
      1. 3.5.1. nmap
    6. 3.6. SMB发现内网存活主机
      1. 3.6.1. nmap
      2. 3.6.2. cmd
    7. 3.7. MSF发现内网存活主机
      1. 3.7.1. msf一些常用命令
  4. 4. 实用工具
    1. 4.1. 扫描工具
      1. 4.1.1. dirb
    2. 4.2. 综合性工具
      1. 4.2.1. msf
        1. 4.2.1.1. mysql
        2. 4.2.1.2. mssql
        3. 4.2.1.3. msfvenom生成常用payload
          1. 4.2.1.3.1. msfvenom便捷化生成payload
        4. 4.2.1.4. smbmap
        5. 4.2.1.5. 离线提取目标hash
        6. 4.2.1.6. [msf内置mimikatz使用(https://micro8.github.io/Micro8-HTML/Chapter1/61-70/65_%E7%A6%BB%E7%BA%BF%E6%8F%90%E5%8F%96%E7%9B%AE%E6%A0%87%E6%9C%BAhash%E8%A1%A5%E5%85%85.html)
        7. 4.2.1.7. meterpreter使用irb操作系列
        8. 4.2.1.8. msfvenom内存加载shellcode
        9. 4.2.1.9. 其他工具
          1. 4.2.1.9.1. GreatSCT
  5. 5. 免杀
    1. 5.1. 特征与行为分离免杀
      1. 5.1.1. 自己动手尝试写shellcode执行盒
    2. 5.2. payload分离免杀思路第二季
    3. 5.3. powershell免杀
      1. 5.3.1. msf多次编码免杀
      2. 5.3.2. 基于SqlDataSourceEnumerator发现内网存活主机
      3. 5.3.3. msfvenom不生成pe文件,生成shellcode并借助第三方直接加载到内存中
      4. 5.3.4. csc.exe与InstallUtil.exe分离免杀
      5. 5.3.5. 基于Powershell做Socks4-5代理
      6. 5.3.6. 提取目标机hash下载本地解密
      7. 5.3.7. 借助aspx对payload进行分离免杀
  6. 6. 后门
    1. 6.1. rootkit
    2. 6.2. 隐蔽后门介绍
      1. 6.2.1. 第一季关于后门
        1. 6.2.1.1. 一个案例
    3. 6.3. the-backdoor-factory
    4. 6.4. Veil-Evasion
  7. 7. payload
  8. 8. 提权
    1. 8.1. mysql
      1. 8.1.1. 非交互条件下,mysql udf提权
    2. 8.2. 在线类工具网站
  9. 9. 红蓝对抗渗透测试
    1. 9.1. BloodHound
    2. 9.2. popy
  10. 10. 效率提高
    1. 10.1. msfvenom命令自动补全
  11. 11. 渗透案例
    1. 11.1. 持续渗透、后渗透
  12. 12. 参考