网络配置
ethtool
ethtool 是用于查询及设置网卡参数的命令
1 | [root@server ~]# ethtool em3 |
ifconfig
1 | ifconfig |
1 | 卸载网卡 |
ifconfig ifup ifdown
https://huangkaibo.cn/2018/04/21/ifconfig-ifup-ifdown/
1 | ifup eth0 |
dhclinet
dhclient命令使用动态主机配置协议动态的配置网络接口的网络参数
域名路由
route
route -n # 查看路由表
netstat
netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.86.40.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.86.40.1 0.0.0.0 UG 0 0 0 eth0
dig
dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具
1 | tldr dig |
1 | DNS Lookup utility. |
控制输出
输出内容太多,只显示结果
1 | dig +nssearch baidu.com any |awk '{print($11)}' |
1 | dig +noall +answer dubai.com any|awk '{print($5)}' |
网络连接
ss
查看开放端口
1 | [root@server ~]# ss -lt |
ss
ss的含义 Socket State
查看链接
https://blog.csdn.net/arkblue/article/details/7876210
netstat
1 | netstat -ni |
1 | netstat -na|less |
查看机器开放哪些端口:
1 | netstat -tunlp |
查看进程对应开放端口
1 | netstat -tunlp|grep pid |
lsof
查看端口使用情况lsof -i tcp:port
查看进程详细信息lsof -p pid
流量统计
iftop
nsload
网络抓包
tshark
tshark不仅有抓包的功能,还带了解析各种协议的能力
https://www.centos.bz/2014/07/linux-commandline-capture-packets-tshark-wireshark/
http://www.qingpingshan.com/pc/fwq/353123.html
tcpdump
tcpdump复杂过滤规则
1 | tcpdump -s 65535 -x -nn -q -tttt -i any -c __count__ host __host__ -w data.cap |
ngrep
1 | sudo ngrep -x -q -d lo '' 'port __port__' |
文件传输
scp
sftp命令
https://linux.cn/article-8253-1.html
nc
NetCat,在网络工具中有“瑞士军刀”美誉,一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据,但是不同版本支持参数会有差异
,当某些参数不能用时可以先确认下版本
1 | [root@server1 ~]# type -a nc |
下面以Centos6.4,nc1.84.22版本进行演示,A机器ip:192.168.10.1 B机器ip: 192.168.10.2
传输文件
主机A传输数据到主机B
nc 使用不同的箭头符号来控制到底是接收数据还是发送数据,下面是由主机A传输数据到主机B
正向传输
参数解释:
- -l: 指定监听端口
一般正常传输,主机A开启监听,主机B nc连接获取数据
1 | 主机A: nc -l 1234 < xxx.txt |
反向传输
当存在防火墙的时候,一般防火墙设置策略是:只会限制远程机器不能直接访问本机开放的特殊端口,但是并不会限制本地机器访问远程机器
,这样可以使用反向shell,在远程主机B上开启监听,墙内机器A nc连接 远程主机B
1 | 墙内主机A: nc 192.168.10.2 1234 < xxx.txt |
主机B传输数据到主机A
如果想主机B传输数据到主机A,也对应正向反向两种,这里只用正向传输举例,反向传输类似
1 | 主机A: nc -l 1234 > xxx.txt |
文件打包压缩后传输
1 | A:tar -czvf - testdir/|nc 192.168.10.2 1234 |
端口扫描
参数解释:
- -z扫描模式
- -u探测udp
- -v 显示详细信息
- -n 以数字形式表示的IP地址
1 | nc -nvz 1.1.1.1 1-65535 |
远程控制(反弹shell)
受害者主机主动连接攻击者的服务端程序,将自己的bash权限交给攻击者
受害者:
Ubuntu Linux ——> 192.168.146.128
攻击者:
Kali Linux ——> 192.168.146.129
1 | 攻击者机器: nc -lvp 2333 |
远程硬盘克隆(块级别拷贝)
1 | A:nc -lp 333| dd of=/dev/sda |
异常模拟
iptables
service iptables status
service iptables start
iptables -I FORWARD -p tcp –dport 3306 -j DROP
iptables -I FORWARD -p tcp –dport 3306 -j ACCEPT
1、iptables -L
查看filter表的iptables规则,包括所有的链。filter表包含INPUT、OUTPUT、FORWARD三个规则链。
说明:-L是–list的简写,作用是列出规则。
2、iptables -L [-t 表名]
只查看某个表的中的规则。
说明:表名一共有三个:filter,nat,mangle,如果没有指定表名,则默认查看filter表的规则列表(就相当于第一条命令)。
举例:iptables -L -t filter
tc
在某些情况下,我们需要模拟网络很差的状态来测试软件能够正常工作,比如网络延迟、丢包、乱序、重复等
https://www.hi-linux.com/posts/35699.html
killcx
Linux环境下切断tcp连接,google搜索关键字:“close””tcp connection””linus”,开发调试的时候,为了模拟意外情况,需要在不影响服务进程的情况下单独 切断tcp连接,即 强制断开tcp连接。不能使用iptables,因为iptables的禁用对已经建立的tcp连接无效(这是由tcp的机制决定的)
Centos安装
1 | wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/perl-Net-RawIP-0.25-1.el6.rf.x86_64.rpm |
使用
perl killcx 127.0.0.1:1234 lo
参考文档
切断tcp连接,在linux环境下
Killcx : close a TCP connection (for Linux)
网络安全
ping
死亡ping
1 | # 每0.01秒给192.168.10.147发送一个大小65500字节的icmp包 |
发送指定个数icmp数据包
ping -c 3(ping3次) -q(不打出输出信息) www.baidu.com(网址)
fping
hping3
arping
nmap
安装
1 |
|
其他
扫描局域网内ip地址:
nmap -sP 本地IP/24
nmap -F -sT -v www.quar.com
代理转发
proxychains
proxychains
- 安装
https://blog.csdn.net/weixin_42135399/article/details/82706083 - 测试:
1
2curl https://www.google.com/
proxychains curl https://www.google.com/
ssh
实用socket5代理请求
ssh -qtfnN -D 127.0.0.1:1080 root@192.168.10.1
ssh命令的三项代理功能
-q
Quiet mode. Causes most warning and diagnostic messages to be suppressed.
-T
Disable pseudo-terminal allocation.
-D
[bind_address:]port]
-f
Requests ssh to go to background just before command execution. This is useful if ssh is going to ask for passwords or passphrases, but the user wants it in the background. This implies -n. The recommended way to start X11 pro-grams at a remote site is with something like ssh -f host xterm.If the ExitOnForwardFailure configuration option is set to ``yes’’, then a client started with -f will wait for all remote port forwards to be successfully established before placing itself in the background
-n
Redirects stdin from /dev/null (actually, prevents reading from stdin). This must be used when ssh is run in the background. A common trick is to use this to run X11 programs on a remote machine. For example, ssh -nshadows.cs.hut.fi emacs & will start an emacs on shadows.cs.hut.fi, and the X11 connection will be automatically forwarded over an encrypted channel. The ssh program will be put in the background. (This does not work if ssh needs to ask for a password or passphrase; see also the -f option.)
-N
Do not execute a remote command. This is useful for just forwarding ports.
实用工具
curl
sendip
linux网络IP发包工具
安装
1 | # http://www.earth.li/projectpurple/progs/sendip.html |
使用
https://blog.csdn.net/freexploit/article/details/503954
https://blog.csdn.net/zh_94/article/details/81660184
注意
- 不能发送连续的数据包,所以需要配合脚本实现
- 使用-v查看包是否正常
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21sendip -p ipv4 -is 192.168.1.2 -id 192.168.1.1 -p icmp -d -x89ABCDEF www.baidu.com
[root@server /tmp]#
[root@server /tmp]# sendip -v -p ipv4 -is 192.168.1.2 -id 192.168.1.1 -p icmp -d -x89ABCDEF www.baidu.com
Added 25 options
Initializing module ipv4
Initializing module icmp
Finalizing module icmp
Finalizing module ipv4
Final packet data:
45 00 00 22 E.."
E5 D2 00 00 ....
FF 01 52 B4 ..R.
C0 A8 01 02 ....
C0 A8 01 01 ....
08 00 C8 81 ....
2D 78 38 39 -x89
41 42 43 44 ABCD
45 46 EF
Sent 34 bytes to www.baidu.com
Freeing module ipv4
Freeing module icmp