บทความนี้กล่าวถึงวิธีการดักจับข้อมูลผ่านโปรแกรม Burp Suite โดยโปรแกรมมีการป้องกันที่เรียกว่า Proxy-aware ตัวอย่างเช่นโปรแกรมที่ถูกเขียน Flutter เป็นต้น เพื่อให้นักทดสอบเจาะระบบสามารถที่จะดักจับและวิเคราะห์ข้อมูล การส่งและรับระหว่าง Application และ Server ได้
Proxy-aware แปลว่าระวัง และถ้ามีการตั้งค่า proxy บนเครื่องมันจะรู้และไม่วิ่งไปหา proxy ส่วนของ proxy-aware เป็น adjective ดังนั้น เรากำลัง bypass proxy-aware application
Mr.Juttikhun Jirathanan
บทความโดย
Nattakit Intarasorn และ Warunyou Sunpachit
Cybersecurity Consultant
ติดตั้ง WireGuard
1. ใช้คำสั่งติดตั้งดังนี้ WireGuard บน Kali ดังนี้
sudo su
apt update && apt install -y wireguard iptables resolvconf qrencode
2.สร้าง Private และ Public Key
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
เก็บค่า
qqCzF+jwuW++CMdaQlzkWebMVLz4Z1yUmuYPpBFgfwI=
3. Server private key
cat /etc/wireguard/privatekey
<Server_Private_Key>
เก็บค่า
SNXhmB4n+2OmxN0M7Wfq3A78xfp7FdRdvKhQj51gNFs=
4. ปรับแต่งค่า WireGuard
nano /etc/wireguard/wg0.conf
5. เอาค่าปรับแต่งไฟล์ WireGaurd โดยแทนที่ค่า Privatekey
[Interface]
Address = 10.55.55.1/24,fd42:42:42::1/64
ListenPort = 50409
PrivateKey = SNXhmB4n+2OmxN0M7Wfq3A78xfp7FdRdvKhQj51gNFs=
PostUp = iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; sudo iptables -t nat -A PREROUTING -i wg0 -p tcp --dport 0:65535 -j REDIRECT --to-port 8080
PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; sudo iptables -t nat -A PREROUTING -i wg0 -p tcp --dport 0:65535 -j REDIRECT --to-port 8080
6. วิธี Save และ ออกจาก Nano
Enter
ctrl + x
Yes
Enter
7. ตั้งค่า Routing
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/wg.conf
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.d/wg.conf
sysctl --system
8. Start Services
systemctl start "wg-quick@wg0"
systemctl enable "wg-quick@wg0"
9. สร้าง VPN Client Profile
wg genkey | tee /etc/wireguard/clientprivatekey1 | wg pubkey | tee /etc/wireguard/clientpublickey1
เก็บค่า
jtE2zKVezcIRxZ8NNzlqyIvazPg8SmXdEyGdTa3HJDM=
npsk | tee /etc/wireguard/presharedkey1
เก็บค่า
Sfgl7R4R3L7sI/37Wak/hn21/xsqGq2qM33xKP2eQcY=
10 เก็บค่า Key
<Client_Private_Key>
cat /etc/wireguard/clientprivatekey1
เก็บค่า
yPbGskf4CMOtE0k3GxYzE3GWklOoMOBAz5pg9sF2VX8=
<Server_Public_Key>
cat /etc/wireguard/publickey
เก็บค่า
qqCzF+jwuW++CMdaQlzkWebMVLz4Z1yUmuYPpBFgfwI=
<Client_Pre_Shared_Key>
cat /etc/wireguard/presharedkey1
เก็บค่า
Sfgl7R4R3L7sI/37Wak/hn21/xsqGq2qM33xKP2eQcY=
11. ตรวจสอบ IP ของ Kali (Bridge Network)
ifconfig
เก็บค่า
192.168.0.101
12. จัดเตรียมค่าที่ได้มาจากข้างต่น PrivateKey, PublicKey, PresharedKey และ Endpoint
[Interface]
PrivateKey = yPbGskf4CMOtE0k3GxYzE3GWklOoMOBAz5pg9sF2VX8=
Address = 10.55.55.2/32,fd42:42:42::2/128
DNS = 1.1.1.1,1.0.0.1
[Peer]
PublicKey = qqCzF+jwuW++CMdaQlzkWebMVLz4Z1yUmuYPpBFgfwI=
PresharedKey = Sfgl7R4R3L7sI/37Wak/hn21/xsqGq2qM33xKP2eQcY=
Endpoint = 192.168.0.101:50409
AllowedIPs = 0.0.0.0/0,::/0
13. สร้าง VPN config – Client
mkdir /root/vpnclient && cd /root/vpnclient
nano wg0-client-1.conf
14. แปะค่าที่จัดเตรียมไว้
15. Client Key
<Client_Public_Key>
cat /etc/wireguard/clientpublickey1
jtE2zKVezcIRxZ8NNzlqyIvazPg8SmXdEyGdTa3HJDM=
<Client_Pre_Shared_Key>
cat /etc/wireguard/presharedkey1
Sfgl7R4R3L7sI/37Wak/hn21/xsqGq2qM33xKP2eQcY=
[Peer]
PublicKey = jtE2zKVezcIRxZ8NNzlqyIvazPg8SmXdEyGdTa3HJDM=
PresharedKey = Sfgl7R4R3L7sI/37Wak/hn21/xsqGq2qM33xKP2eQcY=
AllowedIPs = 10.0.0.2/32,fd42:42:42::2/128
16. เพิ่ม Client เปิด Nano และเอาค่าปรับแต่งที่เตรียมเอาไว้ใส่เข้าไป
nano /etc/wireguard/wg0.conf
17. Update ค่า Configurations
wg syncconf wg0 <(wg-quick strip wg0)
18. สร้าง QR code
qrencode -t ansiutf8 -l L < wg0-client-1.conf
19. Download WireGuard ลงเครื่อง Android
20. Scan QR code
21. เมื่อ Scan เสร็จสิ้นให้ตั้งชื่อ
22. เมื่อกดเปิดจะเห็นว่ามี icon vpn ขึ้นมา
การตั้ง Burp เพื่อดักจับข้อมูล
- ตั้งค่า Interface ตามรูป
2. ตั้งค่า Support invisible proxy ตามรูป
3. ทดลองเปิด Browser ใน Android
4. ในการเปิดใช้งานครั้งต่อไปเมื่อ Login เข้า Kali แล้ว จะสังเกตุเห็นว่ามีการเปิดใช้งาน VPN ทันที เราสามารถตั้งค่า Burp ตามข้างบน และที่ Mobile เปิดการเชื่อมต่อได้ทันที (ต้องอยู่ในวง Lan เดียวกัน)
ปัญหาที่อาจทำให้ดักจับข้อมูลไม่ได้
- ตรวจสอบว่า Kali ตั้ง Network เป็น Bridged ถ้าตั้งแล้วไม่สามารถเข้าใช้งาน Internet ได้ให้ Shutdown VM และ เครื่องคอมพิวเตอร์อีกครั้ง
- อยู่ในวง Lan เดียวกัน ให้ทำการตรวจสอบว่า Android และ Computer อยู่วง Lan เดียวกันจาก WiFi Hotspot เดียว ทดลองดัก Burp ด้วยวิธีปกติก่อน http://blog.itselectlab.com/?p=4813 ว่าสามารถเชื่อมต่อกันได้
- ถ้าตรวจสอบแล้ว สามารถดักปกติได้ แสดงว่า Burp สามารถทำงานได้ และเครือข่ายเชื่อมต่อถึงกันได้ ให้ตรวจสอบค่า Configure WireGard ว่าค่า Key ต่าง ๆ Set ถูกต้องหรือไม่
nano /etc/wireguard/wg0.conf
cat /etc/wireguard/privatekey
cd vpnclient
nano wg0-client-1.conf
cat /etc/wireguard/clientprivatekey1
cat /etc/wireguard/publickey
cat /etc/wireguard/presharedkey1
ifconfig
- ถ้าตรงกันหมดแต่ไม่สามารถดักข้อมูลได้ ให้เปลี่ยน ส่วนของ Address เป็นเลข IP อื่น ๆ ที่ไม่เหมือนเดิม และต้องอยู่วงเดียวกับ Server VPN ด้วย
ส่วนนี้ใน nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.55.55.2/32,fd42:42:42::2/128
ส่วนนี้ใน nano wg0-client-1.conf
[Interface]
Address = 10.55.55.1/24,fd42:42:42::1/64
ListenPort = 50409
แต่การเปลี่ยนดังกล่าวจะให้ update ค่า configuration และเปิดใช้งาน VPN ใหม่ รวมถึงที่ Android ให้ scan QR code ติดตั้งใหม่ด้วย
Update Configure
wg syncconf wg0 <(wg-quick strip wg0)
Restart Service
systemctl restart "wg-quick@wg0"
systemctl enable "wg-quick@wg0"
สร้าง QRcode
qrencode -t ansiutf8 -l L < wg0-client-1.conf
อ้างอิง
บทความอื่น ๆ ITSELECTLAB