Cara menentukan nama pengguna pada shell perintah windows

-1

Ada berbagai saran tentang cara menentukan nama pengguna saat ini di shell perintah windows tanpa menggunakan whoami, seperti pertanyaan ini atau pertanyaan ini . Jawaban generik tampaknya echo %username%. Namun, ketika saya melakukan ini (pada Windows XP), shell menjawab dengan %username%. Apakah saya melewatkan sesuatu?

countermode
sumber
Ini bekerja di Windows 7.
cliff2310
1
@ cliff2310 Anda mengatakan itu berfungsi pada 7 tetapi tidak bisa Anda lihat dia menandai XP ini dan bertanya tentang XP (Yang mengatakan, itu harus bekerja pada XP juga)
barlop
1
Ini berfungsi dengan baik pada sistem XP saya. Pengamatan Anda hanya akan terjadi jika username tidak disetel, atau disetel ke string literal %username%. Untuk mencari tahu yang mana, ketik set username. Keduanya tidak mungkin, tetapi tebakan terbaik saya adalah Anda telah menjalankan file batch yang digunakan username sebagai variabel kerja dan menghapusnya saat keluar, jadi cari string file Anda username (pencarian case-sensitive)
AFH
"Seperti yang saya katakan, itu adalah laboratorium pentesting dengan mesin yang sengaja rusak . "- memberikan suara untuk menutup topik
DavidPostill
"sengaja rusak" harus dipahami dalam arti pemeliharaan yang buruk, bukan dalam arti mesin yang terkonfigurasi secara artifisial yang tidak akan pernah terlihat di alam liar.
countermode

Jawaban:

1

mungkin Anda kehilangan variabel lingkungan USERNAME karena beberapa alasan. Jalankan perintah yang ditetapkan dan itu akan mencantumkan variabel lingkungan dan nilainya. XP saya memiliki USERNAME dan saya tidak menambahkannya, jadi XP memilikinya .. anehnya milik Anda tidak. Tetapi jalankan mengatur dan melihat apa yang Anda miliki

Banyak variabel lingkungan memiliki pengguna

TEMP=C:\DOCUME~1\User\LOCALS~1\Temp
TMP=C:\DOCUME~1\User\LOCALS~1\Temp
USERNAME=user
USERPROFILE=C:\Documents and Settings\user

Ditambahkan

Dalam contoh yang mirip dengan yang Anda masuki. Di sini saya telah login ke mesin dari jarak jauh, ia menjalankan bvsshserver (bitvise ssh server aka winsshd) (yang ketika login bahkan dari klien cygwin, akan memberikan baris perintah windows) meskipun openssh server via cygwin memberi bash .. Anda dapat menggunakan openssh client di cygwin untuk masuk ke bitvise sshd dan mendapatkan baris perintah windows

SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\WINSSH~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\WINSSH~1\LOCALS~1\Temp
USERNAME=WinSSHD_VirtualUsers
USERPROFILE=C:\Documents and Settings\WinSSHD_VirtualUsers
VIRTGROUP=Virtual Users
VIRTUSER=user
windir=C:\WINDOWS


C:\>whoami
WinSSHD_VirtualUsers

C:\>

Dalam hal ini "VIRTUSER" memiliki nama pengguna, meskipun berbeda dengan yang ditunjukkan oleh whoami.

Server SSH apa (atau program server jarak jauh) yang dijalankan oleh mesin XP Anda?

barlop
sumber
Nah, ini muncul di lab pentesting. Saya mendapatkan shell pada mesin XP ini dan saya bertanya-tanya siapa saya (mis. Hak istimewa yang saya miliki). set adalah saran yang bagus, meskipun tidak banyak memberi tahu dalam situasi tertentu.
countermode
@countermode apa servernya? Saya kira itu bisa bergantung pada itu
barlop
Ini adalah Win XP, tampaknya tidak ada paket layanan yang diinstal. username tidak diatur dan whoami tidak terpasang.
countermode
@countermode tidak mungkin ada paket layanan .. karena Anda mengatakan dia tidak punya %TEMP% antara? saya akan terkejut jika win xp pre sp1 sangat terbatas! berapa banyak pengguna di sana! mungkin melihat di c: \ dokumen dan pengaturan melihat berapa banyak folder yang ada. Jika mesin memiliki begitu banyak hal yang dihapus mungkin hanya ada satu profil pengguna di sana! (yang mengatakan .. tidak diragukan lagi saya tidak memiliki pengguna virtual winshd yang tercantum dalam dokumen dan pengaturan saya)
barlop
Seperti yang saya katakan, ini adalah lab pentesting dengan mesin yang sengaja rusak. Tunggu... %TEMP% diatur.
countermode
1

Anda tidak melewatkan apa pun. Mungkin Anda menjalankannya dengan PowerShell? Jika Anda tidak mendapatkan nilai yang benar dari cmd, itu adalah sesuatu yang harus Anda selidiki lebih lanjut.

Ketika dalam prompt perintah Windows (cmd bukan PowerShell), masukkan:

echo %username%

Saat di PowerShell, masukkan:

# Returns computername/username
whoami
# Returns username
echo $env:username
# Returns table containing computer/usernem
Get-WMIObject -class Win32_ComputerSystem | select username
Alex Atkinson
sumber