warning.or.kr season 2

엊그제부터 인터넷 도감청이 이슈다.
이전에는 HTTP프로토콜의 HOST 헤더를 확인함을 분석하여 HTTPS를 사용하는경우 우회가 가능하였다. (이전분석)

이번에는 HTTPS를 사용하더라도 접속이 안되는것을 확인, 분석하였다.

유명한 성인사이트 접속시 HTTPS 접속임에도 ERR_CONNECTION_RESET에러가 뜨며 접속이 거부되었다.

Wireshark 패킷을 확인해보니

Client Hello 이후 RST, ACK패킷이 확인된다.
중요한점은 RST 패킷 이후에도 Server Hello가 확인된다.
이는 서버에서 정상적으로 응답하나 중간에 어떤xx가 RST패킷을 보내는것으로 추정된다.
TCP Reset Attack 의 일종이다.

RST패킷을 보내는 기준으로는 TLS패킷의 Server Name Indication extension (SNI)로 보여진다.

GDNS를 통해 원본의 IP주소를 확인하고 /etc/hosts파일을 수정하여 test.com으로 접속시 대상의 서버로 접속하게 만들어 보았다.
이후 https://test.com 접속시 다음과 같은 패킷을 확인할 수 있다.


목적지로부터 정상적인 응답이다.

하지만 서버는 301 Moved Permanently 응답을 보내며 원본의 도메인으로 Redirect 시켜버리며 다시 Client Hello는 reset 되어버린다.

서버는 정상적으로 응답하는것을 재차 확인하였고
중간에 날라오는 RST, ACK를 잘 처리하면 (iptables -I INPUT -p tcp –tcp-flags ALL RST,ACK -j REJECT –reject-with tcp-reset)

우회하여 접속할 수 있다.

Android analysis

disable DM-Verity

mod fstab file in initrd of boot.bin
delete "verify" option in mount option field

set SELinux permissive

add below to kernel cmdline
enforcing=0 androidboot.selinux=permissive

useful adb command

Get Activity List
dumpsys package | grep -i [app_id] | grep Activity

Run Activity
am start -a android.intent.action.MAIN -n [app_id]/.activities.xxxx [-e extra_id extra_value]

extract bootimg
abootimg -x boot.bin

modding kernel ramfs
to extract
cat initrd | gunzip | cpio -vid
to merge
find ./ | sort | cpio -o -H newc | gzip -9 > ../new_initrd
make bootimg
abootimg –create new_boot_su.bin -f bootimg.cfg -k zImage -r new_initrd -s stage2.img

restart zygote
killall zygote ## 가끔 잘안됨
setprop ctl.restart zygote

 

Start adbd via commandline

setprop service.adb.tcp.port 5555
settings put global development_settings_enabled 1
settings put global adb_enabled 1
start adbd

adb push adbkey.pub /data/misc/adb/adb_keys

https://stackoverflow.com/questions/26213954/how-to-solve-adb-device-unauthorized-in-android-adb-host-device

useful tools

jadx
JEB

Lenovo BIOS Setup by WMI

Lenovo의 2017년 이후 모델들은 WMI(Windows Management Instrumentation)를 이용한 BIOS 설정변경이 지원된다.
뭐 BIOS 직접 들어가서 수정해도 되지만 눈여겨볼건 거기 표시안되는 항목도 수정이 가능하다는점.
Lenovo에서 제공하는 매뉴얼과 샘플 스크립트 보면서 직접 해도 되지만 구글링좀 해보면 친절하게도 GUI형태의 도구를 제공하고 있다.

현재 사용하는 E585의 경우 2018년 이후 모델이기에 WMI가 지원되며 윈도우에서 ThinkBiosConfig.hta를 실행하여 간단하게 조작할 수 있다.

나의 목적은 내장그래픽에 할당된 메모리 크기를 늘리는 것이었는데…

항목이 있어 256->512MB로 변경후 재부팅 해보았으나 적용이 안된다….

해당 문제가 Lenovo Forum에 제기 되었으나… 담변이 없다.

참고링크 :
Get-WmiObject -list * -NameSpace root -Recurse -EA 0
cscript.exe %scriptroot%\Test\SetConfig.vbs SecureBoot Enable
https://www.mediasupport.org/wp-content/uploads/2017/05/skl_deploy_01.pdf
https://bbiswalcom.wordpress.com/2017/09/11/powershell-script-to-modify-lenovo-bios-settings/